Ситуация: Незарегистрированный пользователь посещает веб-сайт и выдает запрос на предмет. В соответствии с текущим потоком данных этот запрос сначала вставляется в db, а идентификатор запроса переносится в URL-адресе последующих страниц впредь (где пользователь получает дополнительную информацию).Запретить пользователю манипулировать параметром строки запроса
Задача: Пользователь может изменить идентификатор.
Что я сделал до сих пор: Как только я получить идентификатор после запроса вводится с помощью lastInsertId(), я хранить его в переменной сеанса и проверить в последующих страницах против ид от $ _GET. Я также реализовал CRSF-защиту, но когда совпадает токен, токен сеанса отключен. Следовательно, даже если пользователь обновляется на одном и том же URL-адресе, проверка не выполняется.
Как решить эту проблему? Просьба указать на концепции, которых мне не хватает. Также, когда многие параллельные пользователи будут выдавать запросы, сервер определяет, какой идентификатор для пользователя, из которого он имеет уникальный идентификатор сеанса, который будет отличаться для разных пользователей, исправить? Могут ли быть какие-либо проблемы или уязвимости из-за этого параллелизма?
Добавление сеанса - хороший метод. Наряду с этим вы можете вручную слить Id с некоторой солью, которая хранится в конфиге. Вы также можете использовать что-то вроде комбинации «день и год» в качестве соли, и в этом случае она останется постоянной в течение дня. Передайте соль вместе с идентификатором и повторите проверку соли и сеанса и продолжайте, если они совпадут, – AtulBhatS
благодарит @AtulBhatS! Использование mcrypt_create_iv() может заботиться о соли? Просто попытался сделать то же самое с url stackoverflow, он перенаправил меня на другой вопрос. Полагаю, это зависит от чувствительности данных, о которых идет речь :) – Bonzo