Я разрабатываю простое веб-приложение, в котором пользователи могут редактировать свои сообщения, щелкая ссылку редактирования.
где пользователь находится в profile.php, когда пользователь щелкает ссылку редактирования сообщения, которая находится на той же странице, а затем перенаправляет на editpost.php? edit = 4, сообщение с идентификатором 4 позволяет пользователю редактировать.
проблема: когда пользователь вмешивается в URL-адрес, редактируя его как editpost.php, тогда как мы можем не позволить пользователю редактировать post.php просто введя в адресную строку пользователем
Моя первая мысль - иметь какой-то токен, уникальный для каждого редактирования, которое должно присутствовать для доступа к странице. Файл cookie, параметр URL и т. д., Если они недоступны, пользователи не могут получить доступ к странице.






Вот самые простые вещи, которые, я думаю, вы можете сделать, чтобы улучшить свои страницы:
Авторизация: проверьте права пользователя в начале вашего скрипта. Пользователи не смогут редактировать сообщения, у которых нет прав на редактирование.
Уникальные случайные идентификаторы: вместо отображения идентификатора автоинкремента (который легко угадать) вы можете создать еще один строковый столбец в базе данных и назначить случайный уникальный идентификатор для каждого сообщения. В вашем сценарии запросите базу данных на основе этого уникального столбца, а не столбца первичного идентификатора. Если пользователь находится на edit.php?uid=abz-723-random, он / она не сможет угадать следующий доступный идентификатор, чтобы попробовать.
Также можно использовать некоторые типы токенов. Однако использование токена не позволяет пользователю легко обновлять страницы / разделять страницу. Если у вас мало опыта работы с токенами, я не рекомендую их.
спасибо за ваш ответ и помощь мне в улучшении, и у меня есть еще одно сомнение, как не разрешить пользователям редактировать страницу edit.php, отредактировав url edit.php? uid = abz-723-random
Боюсь, что нельзя запретить пользователям редактировать URL в адресной строке. Случайный идентификатор не позволяет пользователю угадать «следующий действительный идентификатор». Если они вводят неверный id, вы должны вернуть страницу с ошибкой.
Сначала измените URL-адрес редактирования сообщения
editpost.php?=edit=4
к
editpost.php?edit=4
затем используйте метод Get, чтобы получить идентификатор или номер сообщения редактирования, например
$editpostid=$_GET['edit'];
после этого запустите свой запрос mysqli с условием где id = '$ editpostid' . Дайте мне знать, если вы не понимаете
извините за мою ошибку, и мой вопрос в том, как не разрешить пользователю перейти на страницу editpost.php, отредактировав URL-адрес editpost.php? edit = 4
Простите Кришну за непонимание. Есть идеи или нет?
В
editpost.phpубедитесь, что человек имеет право редактировать профиль, на который ссылается переданное значение.