Вопрос, который я собираюсь задать, просто потому, что мне любопытно. Я думаю, что поступаю правильно, но я хочу убедиться, что на самом деле является правильной вещью. Речь идет о хешировании.
Сайт, который я сейчас создаю, содержит несколько компонентов Ajax-ed. Прежде всего, пользователи, которые не вошли в систему, не могут использовать эти компоненты. Во-вторых, вошедшие в систему пользователи могут выполнять свои запросы только от своего имени. Это довольно легко подделать, потому что я отправляю идентификатор пользователя.
Мой метод проверки заключается в следующем. У каждого пользователя есть столбец в базе данных, который содержит случайную информацию, например, 8-символьную случайную строку. Наряду с каждым Ajax-запросом, который делает пользователь, эта случайная строка отправляется как хешированная строка. Когда сервер получает запрос Ajax, этот хеш сопоставляется с пользовательской таблицей, чтобы удостовериться, что идентификатор и хеш являются допустимой парой. Если это так, запрос действителен.
«Секретная» случайная строка никогда не попадает в область пользователя, и ее нелегко угадать, что означает, что хеш никогда не может быть создан пользователем. Безопасен ли этот вид запроса? Есть ли недостатки? И было бы лучше, если бы я использовал немного соли?
Кстати, этот вид проверки меня действительно интересует. Я прошел курс по дизайну взаимодействия. «У нас» есть принцип «знания в мире и знания в голове». Хеширование действительно использует эту технику для передачи метаданных из «головы» в «мир» (и наоборот). И голова, и мир имеют свои методы сравнения и дешифрования метаданных, что делает невозможным выдавать себя за запрос. Пока мир не знает, что знает голова.
Что ж, я хотел бы знать, безопасны ли мои запросы (относительно). Заранее спасибо!
Reinder