Intereting Posts
Эффективное объединение 3 таблиц в MYSQL Facebook API: войдите в систему с помощью JavaScript SDK, затем проверьте состояние входа в PHP Как я могу перенести PHP preg_split в Java для особого случая unserializing значения в ADODB? MySQL SELECT Tree Parent IDs MySQL Вставить: сначала проверить? Поиск с разделенным запятой значением mysql laravel 5.2 пользовательский файл журнала для разных задач Зачем использовать ORM в PHP? Вызов WordPress для неопределенной функции get_header (); Разделить на две переменные? Показывать только повторяющиеся элементы из массива PHP: подсчитайте элементы в массиве, разделите их на два, создайте два списка UL с одинаковым количеством элементов, содержащих элементы из массива Добавьте некоторые html в формы Zend Миграция Laravel: уникальный ключ слишком длинный, даже если указан PDO не возвращает результатов, тогда как командная строка MySQL возвращает ожидаемый результат

Как создать защищенные частные URL-адреса в CakePHP?

Мне нравится создавать безопасный URL для пользователя для его записей (удалять и редактировать ссылки).

например, это мой фактический URL

http://localhost/project/blogs/delete/1/test-title 

что я хочу сделать,

 http://localhost/project/blogs/delete/4324143563443/test-title (some hash made of salt+user auth id) 

Моя основная цель – создать безопасный хэш вместе с URL для удаления и редактирования метода. Есть ли какой-либо пользовательский метод? Я искал функции CakePHP Security http://book.cakephp.org/2.0/en/core-utility-libraries/security.html и не уверен, правильно ли он это сделал или не уверен, какой алгоритм использовать)

Во-первых, хотя я не совсем понимаю, как / почему вы хотите это сделать, похоже, что вы хотите «защитить» эти ссылки, скрывая их URL. Это называется « Безопасность через Obscurity » и, как правило, неодобрительно.

В Cake (и большинстве приложений) обычный способ достичь этого – разрешить пользователям входить в систему (см. Компонент Auth ), а затем, например, в вашем действии удаления (то есть для URL / delete / 1) запросы будут проверяться для действительного сеанса пользователя и что у пользователя есть достаточные разрешения для удаления.

Хотя я бы настоятельно рекомендовал иначе, если бы вы захотели создать эти неясные URL-адреса, тогда вам, вероятно, следует использовать Security :: hash (); , Проблема заключается в том, что вы не сможете просто хешировать идентификатор, а затем определить id из хэша напрямую (вот и вся точка!). Вместо этого вам нужно будет хранить хэши в базе данных и затем запрашивать хеш (каждый пост может иметь уникальный хеш, сгенерированный либо из идентификатора, либо из случайных данных, либо будет делать).

Как уже упоминалось, «Безопасность безвестности» не очень умна. Тем не менее, самый простой способ добиться того, что вы хотите, – это использовать UUID для первичного ключа вашей таблицы вместо числового автоматического приращения.