Я бы взял себе другую машину (или образ VMWare), удалил все куки-файлы, разрешил все куки-файлы со всех сайтов, затем зашел на ваш сайт и авторизовался (что похоже на то, что вы уже пробовали).
Затем, после того, как ваша банковская сессия будет завершена (или во время, если они создают недолгий cookie-файл только для тестирования, если вы его включили), посмотрите на свой файл cookie, чтобы увидеть, что добавил банк. Это должно сказать вам домены, которые вы должны добавить к своей реальной машине.
Если это не сработает, обратитесь в банк и объясните свои проблемы. Они либо скажут вам, какие из них вы должны разрешить, либо они скажут вам разрешить им всем. Если последнее, вам нужно решить, стоит ли их хранить в качестве вашего банка.
В качестве альтернативы вы можете:
- используйте ту виртуальную машину, которую вы настроили в качестве песочницы для доступа к банку, если вы не хотите, чтобы все файлы cookie появлялись в вашем основном ящике.
- настроить скрипт для удаления всех файлов, не занесенных в белый список, после выключения FF.
- перестаньте беспокоиться о файлах 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
, который проблематичен. Никакое количество URL-адресов, включенных в белый список, не поможет вам в этом, поскольку это будет проверено, только если для глобального cookieEnabled
установлено значение true (что не для вас, и это правильно).
В идеале, вы могли бы просто заменить эту testCookie()
функцию в HTML-коде.
Я нашел похожий сайт, в котором говорится об одной и той же проблеме из другого банка (я думаю, что банки - это то место, где заканчиваются все умственно отсталые детишки Javascript :-) здесь вместе с двумя предложенными решения.
Первым было установить GreaseMonkey и использовать этот скрипт здесь . Очевидно, что это необходимо изменить для вашего банка (URL, имя функции и т. Д.).
В последнем посте по этой первой ссылке выше (на данный момент ищите пост «днем рождения, 15 февраля 2009 г., 10:10 утра») также показано, как добиться того же результата с помощью NoScript. Это включает в себя замену сценария cookieEnabled (для этой конкретной страницы) более рациональным, хотя я, вероятно, просто выберу замену его на "return true"
и приведу к последствиям: -).
Надеюсь, это немного поможет.
Для полноты (на случай, если ссылки исчезнут), я включу здесь два сценария. 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
}
);
Проверка и обновление:
Когда я устанавливаю noscript и полностью отключаю файлы cookie в FF3, а затем добавляю следующие about:config
элементы, появляется запрос на вход в систему для вашего банка, поэтому я думаю, что это, вероятно, путь:
noscript.surrogate.nce.sources = *.citizensbank.ca
noscript.surrogate.nce.replacement =
navigator.__defineGetter__("cookieEnabled",function(){return true});
Я предлагаю вам сделать это и протестировать, чтобы убедиться, что у вас все еще есть все функции.