2009-06-03 1 views
2

Существует банковский сайт, на который я не могу войти в систему, если я не разрешу принимать все файлы cookie. Я использую Firefox 3.0, и я установил, что он не принимает файлы cookie, кроме как из определенного списка (Tools - Options - Privacy - Cookies - Exceptions). Я добавил все сайты, захваченные Live HTTP Headers, в белый список, но логин по-прежнему отключен. Я попытался включить все файлы cookie и логин, а затем посмотреть на файлы cookie, которые у меня есть, - не видел, чтобы в список исключений добавлялся новый сайт. Очевидно, что сайт каким-то образом проверяет, принимаю ли я произвольный файл cookie. Как я могу узнать, какой сайт должен быть включен в белый список? Или я не понимаю что-то о файлах cookie, и принятие всех файлов cookie - это не то же самое, что иметь все правильные сайты в белом списке?Как выяснить, какой сайт добавить в белый список cookie?

Сайт https://www.citizensbank.ca/ и он показывает поля входа только в том случае, если разрешены какие-либо файлы cookie, в противном случае отображается сообщение «Чтобы войти в онлайн-банк, у вас должен быть включен JavaScript и файлы cookie».

+0

Это действительно относится к SuperUser. – Zifre

+0

Я бы классифицировал это как проблему «обратного проектирования», а не проблему «власти пользователя». Возможно, трилогия нуждается в приквеле - denialofservice.com (для хакеров). Это было бы хорошо, поскольку их поддержка отказалась предоставить ответ, ссылаясь на опубликованные «Требования», одним из которых является разрешение всех файлов cookie. – ultracrepidarian

+0

@nameanyone, после более пристального взгляда на ваш JS-код банков, белый список не будет работать. Подробнее см. В моем обновлении. – paxdiablo

ответ

3

Я получил бы еще одну машину (или изображение VMWare), удалить все куки, разрешить все файлы cookie со всех сайтов, затем перейти на ваш сайт и войти в систему (что похоже на то, что вы уже пробовали).

Затем, после завершения банковской сессии (или во время, если они создают недолговечный файл cookie только для тестирования, вы включили их), посмотрите на свою банку с печеньем, чтобы узнать, что добавил банк. Это должно указать вам домены, которые вам нужно добавить на свою настоящую машину.

Если это не помогает, обратитесь в банк и объясните свои проблемы. Они либо расскажут вам, какие из них вам нужно разрешить, либо они скажут вам, чтобы разрешить им все. Если последнее, вам нужно решить, стоит ли их хранить в качестве своего банка.

В качестве альтернативы, вы можете:

  • использование, которое VM вы создали в песочнице для доступа к банку, если вы не хотите, чтобы все печенье, появляющиеся на главном окне.
  • Создайте скрипт, чтобы удалить все небелосованные файлы cookie после закрытия FF.
  • перестать беспокоиться о печеньях и просто разрешить их (я не думаю, что когда-либо слышал о том, что файлы cookie используются как вектор атаки).

Если вы хотите, пришлите мне свои реквизиты (пользователь/пароль), и я увижу, могу ли я отладить его отсюда :-) Просто шутите (на случай, если это не сразу станет очевидным).

Update:

Ваш банк имеет особенно гнусный способ проверки требований. Они проверяют, принимаете ли вы ВСЕ файлы 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 kiddies :-) here, а также два предлагаемых решения.

Первым было установить GreaseMonkey и использовать этот скрипт here. Очевидно, это нужно будет изменить для вашего банка (URL-адреса, имя функции и т. Д.).

Последнее сообщение на этой первой ссылке выше (на данный момент, смотрите «postnap, February 15th, 2009, 10:10 am») также показывает, как добиться того же результата с помощью 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 сводится к "добавьте следующую строку о: конфигурации":

[email protected]*.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 
    } 
); 

испытания и обновление:

Когда я устанавливаю noscri рх и отключить куки вообще в FF3, затем добавьте следующие about:config детали, Войти подсказка показывает на свой банк, так что я думаю, что это, вероятно, путь:

noscript.surrogate.nce.sources  = *.citizensbank.ca 
noscript.surrogate.nce.replacement = 
    navigator.__defineGetter__("cookieEnabled",function(){return true}); 

Я предлагаю вам сделать это и испытание чтобы убедиться, что у вас все еще есть все возможности.

+0

Я сделал именно это - удалил все файлы cookie, разрешил все куки, обновил страницу (Ctrl-F5) - появились поля входа (это может быть повторено кем угодно, не нужно знать данные моей учетной записи - вы увидите поля для имени пользователя/пароля, или вы увидите сообщение с просьбой включить файлы cookie).Посмотрел в банке cookie, добавил все домены в белый список, отключил прием всех файлов cookie, обновил страницу - поля исчезли. Обратившись в банк, сказали, чтобы включить все файлы cookie. Я не собираюсь закрывать свою учетную запись в отношении файлов cookie. Я просто разозлился, и я хочу, чтобы это было по-моему. – ultracrepidarian

+0

Я пробовал методы, которые я знаю, методы, которые позволили мне до сих пор поддерживать белый список cookie, и на этот раз они не работают. Итак, я решил спросить, есть ли лучший способ узнать, какие сайты мне нужны для белого списка. Или, если кто-то скажет мне, что есть способ проверить сайт, разрешаю ли я все файлы cookie, и ни один белый список не может обмануть такой сайт. На самом деле, это все, о чем я прошу. Я хотел бы знать, как окончательно определить, какие файлы cookie я должен разрешить. Речь идет не о некоем немом «сильном пользователе», который слишком много знает о себе. Пожалуйста, не предлагайте больше обходных решений. – ultracrepidarian

+0

@nameanyone, как я упоминаю в своем обновлении, белый список не поможет с вашим JS-кодом банков. Они проверяют, чтобы глобальный флаг cookieEnabled был установлен * до *, пытаясь создать файл cookie. Мозг-мертвый IMNSHO, но там он у вас есть. Единственное возможное решение - заменить их код на что-то большее, а, умное :-) Это означает возиться с определением cookieEnabled для своего конкретного сайта (согласно ссылкам, которые я предоставил). – paxdiablo

0

вы должны добавить свой зарегистрированный базовый домен, поэтому www.citizensbank.ca должен работать. Вы также можете попытаться разрешить куки при входе в систему и нажать ctl + shift + del, когда закончите.

+0

Как я уже упоминал, я добавил Citizensbank.ca и два других сайта, о которых сообщают Live HTTP Headers, и он не работает. Спасибо за ваше другое предложение, но моя цель - не «войти на сайт независимо от того, что», или «очистить все файлы cookie». – ultracrepidarian

0

Другой вариант - использовать другой браузер для запуска процесса. Например, если вы обычно используете Firefox, попробуйте Safari, или Opera, или Chrome, или MSIE. Не импортируйте файлы cookie из обычного браузера. Затем изучите, что нужно, чтобы заставить веб-сайт работать.

Смежные вопросы