Результаты поиска
Как бы вы реализовали аутентификацию на основе FORM без резервной базы данных?
У меня есть сценарий PHP, который работает как программа CGI, а заголовок HTTP Authenticate съедается и выплевывается. Поэтому я хотел бы реализовать какую-то аутентификацию на основе FORM. В качестве дополнительного ограничения отсутствует база данных, поэтому данные сеанса не могут быть сохранены.
Я очень открыт для того, чтобы иметь мастер-имя пользователя и пароль. Мне просто нужно защитить приложение от злоумышленника, который не знает эти учетные данные.
Так как бы вы это реализовали?
Печенье?
Я могу представить форму, и если она подтвердится, я могу отправить обратно файл cookie, который является hash из IP адреса и секретного кода. Тогда я могу запретить отображение страниц, если вещь не расшифровывается правильно. Но я понятия не имею, как реализовать это в PHP.
Связывание ключевых слов источника и поиска с созданием учетной записи
В рамках процесса регистрации для моего онлайн-приложения я думаю о отслеживании источника и / или ключевых слов поиска, используемых для доступа к моему сайту. Это позволит мне увидеть, что реклама работает и откуда с несколько более тонким зерном, чем Google Analytics.
Я предполагаю, что могу установить какой-то файл cookie с этой информацией, когда люди попадают на мой сайт, но я не уверен, как я буду его получать. Это вообще возможно?
Я использую Rails, но независимое от языка решение (или даже просто указатели на то, где найти эту информацию) будет оценено!
Как лучше всего предотвратить захват сеанса?
В частности, это касается использования файла cookie сеанса клиента для идентификации сеанса на сервере.
Является ли лучшим решением использовать шифрование SSL/HTTPS для всего веб-сайта, и у вас есть лучшая гарантия того, что ни один человек в середине атаки не сможет обнюхать существующий файл cookie сеанса клиента?
И, возможно, во-вторых, лучше всего использовать какое-то шифрование самого значения сеанса, которое хранится в вашем сеансовом файле cookie?
Если злоумышленник имеет физический доступ к машине, он все равно может посмотреть файловую систему, чтобы получить допустимый файл cookie сеанса и использовать его для захвата сеанса?
Как HttpOnly cookies работают с AJAX запросами?
JavaScript необходим доступ к файлам cookie, если AJAX используется на сайте с ограничениями доступа на основе файлов cookie. Будут ли файлы cookie HttpOnly работать на сайте AJAX?
Изменить: Microsoft создала способ предотвращения атак XSS, запретив JavaScript доступ к файлам cookie, если указано HttpOnly. FireFox позже принял это. Итак, мой вопрос: если вы используете AJAX на сайте, как StackOverflow, являются ли Http-только файлы cookie опцией?
Правка 2: Вопрос 2. Если целью HttpOnly является предотвращение доступа JavaScript к cookies, и вы все еще можете получить cookies через JavaScript через объект XmlHttpRequest, то в чем смысл HttpOnly ?
Правка 3: Вот цитата из Википедии:
Когда браузер получает такой файл cookie, он должен использовать его как обычно в следующих обменах HTTP, но не делать его видимым для клиентской стороны scripts.[32] флаг
HttpOnlyне является частью какого-либо стандарта и не реализован во всех браузерах. Обратите внимание, что в настоящее время нет никакой возможности предотвратить чтение или запись сессионного куки через XMLHTTPRequest. [33].
Я понимаю, что document.cookie блокируется, когда вы используете HttpOnly. Но похоже, что вы все еще можете прочитать значения cookie в объекте XMLHttpRequest, допуская XSS. Как HttpOnly делает вас более безопасным, чем? Делая файлы cookie по существу только для чтения?
В вашем примере я не могу написать на ваш document.cookie, но я все еще могу украсть ваш файл cookie и отправить его в свой домен, используя объект XMLHttpRequest.
<script type="text/javascript">
var req = null;
try { req = new XMLHttpRequest(); } catch(e) {}
if (!req) try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
if (!req) try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
req.open('GET', 'http://stackoverflow.com/', false);
req.send(null);
alert(req.getAllResponseHeaders());
</script>
Правка 4: Извините, я имел в виду, что вы можете отправить XMLHttpRequest в домен StackOverflow, а затем сохранить результат getAllResponseHeaders() в строку, regex из файла cookie, а затем отправить его во внешний домен. Похоже, что Википедия и ha.ckers согласны со мной в этом, но я хотел бы быть перевоспитанным...
Окончательное редактирование: Ах, очевидно, оба сайта ошибочны, на самом деле это ошибка в FireFox . IE6 & 7 на самом деле являются единственными браузерами, которые в настоящее время полностью поддерживают HttpOnly.
Чтобы повторить все, что я узнал:
- HttpOnly ограничивает весь доступ к document.cookie в IE7 & и FireFox (не уверен в других браузерах)
- HttpOnly удаляет информацию о файлах cookie из заголовков ответов в XMLHttpObject.getAllResponseHeaders() в IE7.
- XMLHttpObjects могут быть отправлены только в домен, из которого они исходят, поэтому нет никакой междоменной публикации файлов cookie.
правка: эта информация, скорее всего, больше не актуальна.
Почему в Chrome нельзя редактировать печеньки?
Вот интересно.
В Хроме отличные developer tools.
Кто-нибудь знает, по каким соображениям они запретили редактировать кукисы, и планируют ли сделать это?
Про Edit This Cookie знаю, но он довольно-таки кривой и сырой. Остальные ещё хуже.
Вот suggestion на гугловском форуме по сабжу.
Или, может есть какие-нибудь плагины, которые позволяют редактировать печеньки прямо в Developer Tools? Ведь удобно же. Как, например, в firebug+firecookie.
Cookie в Android
Можно ли в приложении получить куки браузера Android и применить их для HttpClient (HttpClient парсит страницу, в которой пользователь должен быть авторизован, для этого и нужны куки)? Если да, то как. Заранее благодарен!
Суб доменные сессии через аякс запросы
Вот начал разбирать эту тему, нашел интересную проблему:
Установил параметры в .htacess
php_value session.cookie_domain .portal.my
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule >
В php указал для всех кук те же параметры
session_set_cookie_params(60*60*24*14,'/','.portal.my');
Проверил — все куки нормально ставятся на .portal.my и доступны с любых под доменов. Но проблема возникла в аякс запросах: Параметр «Header set Access-Control-Allow-Origin „*“» разрешает делать аякс запросы на суб домены, но куки, которые с них приходят он игнорирует, хотя фаербаг показывает, что они приходят. Подскажите, как с этим бороться?
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule >