Как я могу защитить мои PHP-куки от JavaScript на страницах пользователя? - PullRequest
0 голосов
/ 17 августа 2011

У меня есть скрипт (запрограммированный мной), в этом скрипте посетители могут зарегистрироваться и войти в систему (информация о пользователе хранится в куки) ... После регистрации они могут редактировать свою личную страницу .. Проблема: эту страницу принимают javascript коды и любой желающий может получить куки, используя document.cookie: (

Я пытаюсь создать регулярное выражение для очистки тега document.cookie со страницы пользователя, но это не очень хорошие решения, потому что пользователи могут добавить: <script src="filejs.js"></script> и записать в filejs.js, например, этот код alert(document.cookie);, этот код не найдется для чистки ....

Сессия сохранена, но долгое время не сохраняется (time()+60*24*300): (

Спасибо.

Ответы [ 5 ]

1 голос
/ 17 августа 2011

Очень трудно быть защищенным, позволяя пользователям включать JavaScript на ваших страницах.Вы не сможете достичь этого самостоятельно с помощью регулярных выражений.Вам нужно будет использовать такое мощное решение, как проект Google Caja .

Помимо других проблем безопасности, вы можете защитить свои куки от JavaScript , используя флаг HttpOnly .Вы можете использовать его в PHP путем передачи setcookie() истинного значения для аргумента $httponly .

1 голос
/ 17 августа 2011

Лучший способ запретить javascript-файлу доступ к cookie-файлам - установить флаг cookie HttpOnly . В PHP это может быть применено к сеансовым cookie-файлам с помощью директивы session.cookie-httponly ini. Если вы устанавливаете cookie с помощью setcookie () , вы можете установить необязательный параметр $httponly на TRUE.

1 голос
/ 17 августа 2011

Почему вы пытаетесь запретить пользователю видеть свои собственные файлы cookie? Они уже могут, куки хранятся на их компьютере.

Если вы хотите запретить кому-либо размещать сценарии на вашей странице, используйте strip_tags, чтобы удалить HTML из ввода, или htmlspecialchars, чтобы отобразить его в виде обычного текста.

0 голосов
/ 17 августа 2011

После регистрации они могут редактировать свою личную страницу .. проблема: эта страница принимает коды javascript…

Так ИСПРАВЬТЕ (например, с помощью дезинфицирующего средства HTML или с помощью языка разметки, который не является HTML). То, что вы описываете, - это не функция, а серьезная уязвимость системы безопасности, и ее нельзя эффективно скрыть путем настройки ваших сеансов. Это было бы равносильно перестановке шезлонгов на Титанике.

0 голосов
/ 17 августа 2011

Вы не можете запретить пользователям видеть свои собственные куки - даже если вы удалите весь HTML и т. Д.

Все, что им нужно, - это Firefox с живыми заголовками http.Как уже упоминалось в другом плакате, зачем отрывать от них печенье, если вы его ему дали?

...