Безопасность $ _SESSION массив

Нет ничего неправильно с ним, пока Вы сохраняете это простым и избегаете неоднозначностей.

Насколько я знаю, это ничего не ускоряет, хотя - это - чисто синтаксический сахар.

5
задан too much php 26 August 2009 в 09:55
поделиться

6 ответов

Вам следует подумать о том, как выполнить поиск, поскольку есть два метода, которые необходимы набору: __ hash __ и __ eq __ .

] Хеш - это «свободная часть», которую вы можете убрать, но __ eq __ не лишняя часть, которую вы можете сохранить; у вас должны быть две строки для сравнения.

Если вам нужно только отрицательное подтверждение (этот элемент не является частью набора), вы можете заполнить коллекцию Set, которую вы реализовали сами, своими строками, а затем вы «завершите» набор удаляя все строки, кроме тех, которые имеют коллизии (они сохраняются для eq тестов), и вы обещаете не добавлять больше объектов в ваш Набор. Теперь у вас есть эксклюзивный тест ... вы можете определить, находится ли объект не в вашем наборе. Вы не можете быть уверены, что " где злоумышленник навязывает определенный идентификатор сеанса ничего не подозревающему пользователю, который при входе в систему и повышает привилегии этого сеанса, позволяя злоумышленнику совместно использовать этот сеанс.

Один из подходов к смягчению этого - регенерировать идентификатор сеанса ] всякий раз, когда вы меняете уровни привилегий сеанса.

См. также этот вопрос:

9
ответ дан 18 December 2019 в 07:55
поделиться

Нет, если вы не оставили где-нибудь дыру в безопасности (например, разрешив пользователям добавлять / изменять $ _SESSION каким-то образом).

1
ответ дан 18 December 2019 в 07:55
поделиться

Если вы хотите избежать чтения файлов cookie с помощью javascript и атак «человек в середине», вам необходимо использовать сервер с https и установить сеансовый файл cookie только для передачи по https.

session.cookie_secure указывает, следует ли отправлять файлы cookie только через безопасные соединения. По умолчанию выключено. Этот параметр был добавлен в PHP 4.0.4. См. Также session_get_cookie_params () и session_set_cookie_params ().

session.cookie_httponly Помечает файл cookie как доступный только по протоколу HTTP. Это означает, что файл cookie не будет доступен для языков сценариев, таких как JavaScript. Этот параметр может эффективно помочь уменьшить кражу личных данных с помощью XSS-атак (хотя он поддерживается не всеми браузерами).

Чтобы лучше защитить права администратора для тех, кто оставляет свой компьютер без присмотра на несколько минут, у вас должен быть таймер при последнем (админском) входе в систему. Если это время превышает x единиц времени, пользователь должен снова войти в систему, чтобы использовать права администратора.

Более короткие сеансы также более безопасны, чем более длинные.

4
ответ дан 18 December 2019 в 07:55
поделиться

Используйте Display.asyncExec или Display.syncExec , в зависимости от ваших потребностей.

Например, Если предоставить такой доступ в вашем скрипте, пользователи мало что могут с этим поделать. Таким образом, данные вашего сеанса должны быть в безопасности. Единственное, что может сделать пользователь, - это управлять файлом cookie сеанса или идентификатором сеанса, переданным в URL-адресе, но маловероятно, что он найдет существующий идентификатор сеанса другого пользователя.

2
ответ дан 18 December 2019 в 07:55
поделиться

Насколько я знаю, нет, если пользователь не угадает ваш идентификатор сеанса и не заменит его в своих файлах cookie. Вы должны добавить дополнительную проверку IP, по крайней мере, на стороне сервера, чтобы предотвратить это.

1
ответ дан 18 December 2019 в 07:55
поделиться

Сервер

Сеансы хранятся на сервере. Пользователь может изменить данные сеанса, если у него есть прямой доступ к каталогу, в котором хранятся сеансы. Решением этого является защита каталога. И убедитесь, что у вас нет дыры в вашем php-коде, где вы позволяете устанавливать user_id с помощью $ _POST или $ _GET.

Клиент

Но на стороне клиента управление сеансами возможно от угона someones session_id. Это позволит угонщику выдать себя за этого пользователя. И отправьте запрос от их имени.

Существует также Подделка межсайтовых запросов . Это когда хакер обманом заставляет пользователя отправлять запросы ему . Например, заставив его щелкнуть ссылку. Вы можете бороться с этим с помощью жетонов. Токен - это сгенерированная строка, которая помещается в массив $ _SESSION и в каждую HTML-форму как скрытое поле. Когда пользователь отправляет форму, значения сравниваются друг с другом. И каждый раз, когда пользователь запрашивает новую страницу, токен меняется. Таким образом, злоумышленник должен попытаться предсказать токен, что довольно сложно в зависимости от того, как вы его создаете.

По ссылкам также будут показаны примеры этих атак.

3
ответ дан 18 December 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: