PHP - GET METHOD - Чтение значений опубликованных переменных URL - PullRequest
1 голос
/ 12 апреля 2020

У меня есть два файла, первый - это форма (регистрация. php), которая отправляет вставленные пользователем поля (имя, фамилия, имя пользователя, адрес электронной почты .. et c) в другой файл, содержащий обработчики ошибок (Registration.chk. php) используя почтовый метод. в случае ошибки во входных данных я хотел, чтобы signup.chk. php отправил обратно все поля, вставленные пользователем, в файл регистрации. php, используя метод GET для повторного отображения формы с ошибками и пользователем. входы.

Я ожидаю, что URL будет выглядеть следующим образом:

localhost/signup?signup=error&firstname=Joe&lastname=Doe&user=Jdoe1&email=Jdoe@abc.com

, он будет работать нормально, если пользователь не вставит специальные символы в качестве входных данных.

, если пользователь вставит $ или & как часть входов, это испортит функцию _GET на другой странице.

Каков наилучший способ кодировать / декодировать значения URL, чтобы предотвратить XSS, а также позволить файлу signup.in c правильно получать значения URL и снова отображать их в полях формы (даже если содержащий <> $ &% .. et c)

1 Ответ

0 голосов
/ 13 апреля 2020

Чтобы сделать то, что вы хотите, вы можете использовать urlencode () и urldecode ().

// To form the URL
$url = "localhost/signup?signup=error&firstname=" . urlencode($firstname);
// To get the value from the URL and decode it.
$firstname = urldecode(isset($_GET['firstname']) ? $_GET['firstname'] : "");

Однако существует проблема безопасности, пользователь может добавить некоторый код в URL для атаки ваш сайт, поэтому вам нужно что-то сделать, чтобы избежать этого, например, ограничить длину ввода или избежать ненужных указаний c символов.

...