別のマシン (または VMWare イメージ) を取得し、すべての Cookie を削除し、すべてのサイトのすべての Cookie を許可してから、サイトにアクセスしてログインします (これは、既に試したことと似ています)。
次に、バンキング セッションが終了した後 (または、有効にしているテストのためだけに有効期間の短い Cookie を作成している場合) に、Cookie jar を見て、銀行が追加したものを確認します。これにより、実際のマシンに追加する必要があるドメインがわかります。
それでもうまくいかない場合は、銀行に連絡して問題を説明してください。どれを許可する必要があるか、またはすべてを許可するように指示されます。後者の場合は、銀行として維持する価値があるかどうかを判断する必要があります。
または、次のいずれかを実行できます。
- すべての Cookie をメイン ボックスに表示したくない場合は、銀行にアクセスするためのサンドボックスとして設定した VM を使用します。
- FF のシャットダウン後に、ホワイトリストに登録されていないすべての Cookie を削除するスクリプトを設定します。
- Cookie について心配するのを完全にやめて、許可するだけです (Cookie が攻撃ベクトルとして使用されているという話は聞いたことがありません)。
よろしければ、アカウントの詳細 (ユーザー/パスワード) を送ってください。ここからデバッグできるかどうかを確認します :-) 冗談です (すぐにわからなかった場合に備えて)。
アップデート:
あなたの銀行は、要件を確認するための特に悪質な方法を持っています。彼らは、あなたがすべてのクッキーを受け入れているかどうかを確認します。これは、彼らがまったくビジネスをしていないことです. Cookie を作成して読み返すことができるかどうかだけを確認する必要があります。これにより、Cookie マネージャーとの互換性が保たれます。
彼らが持っているコードは次のとおりです。
function testCookie() {
if (typeof navigator.cookieEnabled !== "undefined") {
return !!navigator.cookieEnabled;
} else{
document.cookie="testcookie";
return document.cookie.indexOf("testcookie")!=-1;
}
}
if(!testCookie()){
var browserWarningString = '';
browserWarningString += '<div class="warning">';
browserWarningString += '<p>To login to online banking, you must have
JavaScript and cookies enabled.</p>';
browserWarningString += '</div>\n';
document.getElementById("loginAuth").innerHTML = browserWarningString;
}
問題があるのはの最初のビットtestCookie()
ですreturn !!navigator.cookieEnabled
。ここでは、グローバルが true に設定されている場合にのみチェックされるため、ホワイトリスト URL の量は役に立ちませんcookieEnabled
(これはあなたのためではありませんが、当然のことです)。
testCookie()
理想的には、下にある HTML でその関数を置き換えることができるだけです。
私は、別の銀行から同じ問題について話している同様のサイトを見つけました (銀行は、すべての脳死の Javascript キディが行き着く場所だと思います :-) hereと、2 つの提案された解決策があります。
1 つ目は、GreaseMonkey をインストールして、このスクリプトをここで使用することでした。明らかに、これは銀行に合わせて変更する必要があります (URL、関数名など)。
上記の最初のリンクの最後の投稿 (現時点では、「午後、2009 年 2 月 15 日、午前 10 時 10 分」の投稿を探してください) も、NoScript を使用して同じ結果を得る方法を示しています。これには、(その特定のページの)cookieEnabled スクリプトをより合理的なスクリプトに置き換えることが含まれますが、おそらくそれを置き換えることを選択して"return true"
、結果をハングアップするだけです:-)。
それが多少役立つことを願っています。
完全を期すために (リンクが消えた場合に備えて)、ここに 2 つのスクリプトを含めます。GreaseMonkey は次のように要約されます。
// ==UserScript==
// @name TD Canada Trust EasyWeb Repair
// @namespace tag:GossamerGremlin,2007-04-28:Repair
// @description Repair TD Canada Trust EasyWeb website.
// @include https://easyweb*.tdcanadatrust.com/*
// @exclude
// ==/UserScript==
var scriptName = "TD Canada Trust EasyWeb Repair";
// The above @include pattern is overbroad because it exposes this
// user script to potential attacks from URLs such as this:
// https://easyweb.evil.example.com/not.tdcanadatrust.com/bad.html
// The following check eliminates such possibilities:
if (location.href.match(/^https:\/\/easyweb\d\d[a-z].tdcanadatrust.com\//))
{
// Visibly mark page to remind that this script is in use.
if (document.body)
{
host = document.location.host;
dummyDiv = document.createElement('div');
dummyDiv.innerHTML = '<div><span style="color: red">Greased by: ' +
scriptName + ' (' + host + ')</span></div>';
document.body.insertBefore(dummyDiv.firstChild,
document.body.firstChild);
}
unsafeWindow.navigator.__defineGetter__("cookieEnabled",
canStoreCookieFixed);
}
// canStoreCookieFixed()
// TD's version relies on navigator.cookieEnabled, which is not set
// if customer has cookie manager, even when cookies are allowed for
// EasyWeb. The only reliable check for enabled cookies is to actually
// test if session cookie settings succeed, as done in this function
// replacement.
function canStoreCookieFixed()
{
var testSessionCookie ="testSessionCookie=Enabled";
document.cookie = testSessionCookie;
return (document.cookie.indexOf(testSessionCookie) != -1);
}
NoScript バージョンは、「about:config に以下を追加する」に要約されます。
noscript.surrogate.nce.sources=@easyweb*.tdcanadatrust.com
noscript.surrogate.nce.replacement=navigator.__defineGetter__(
"cookieEnabled",function(){
var ed=new Date;
ed.setTime(0);
var tc="__noscriptTestCookie_"+Math.round((Math.random()*99999))
.toString(16)+"=1";
document.cookie=tc;
var ok=document.cookie.indexOf(tc)>-1;
document.cookie=tc+";expires="+ed.toGMTString();
return ok
}
);
テストと更新:
FF3 で noscript をインストールして Cookie を完全にオフにしてから、次のabout:config
項目を追加すると、銀行のログイン プロンプトが表示されるので、おそらくこれでよいと思います。
noscript.surrogate.nce.sources = *.citizensbank.ca
noscript.surrogate.nce.replacement =
navigator.__defineGetter__("cookieEnabled",function(){return true});
これを実行してテストし、すべての機能がまだ機能していることを確認することをお勧めします。