Я хотел бы назначить переменную для отправки в форме, которая передает значение document.referrer. Я использую ниже, который работает. Однако я обеспокоен тем, что кто-то может изменить свой document.referrer для вставки вредоносного кода php.
Как я могу сначала проверить, что document.referrer является веб-адресом, а не каким-либо другим кодом, прежде чем использовать его?
<script type="text/javascript" charset="utf-8">
window.onload = function() {
document.getElementById("prevurl").value=document.referrer;
}
</script>
<input id="prevurl" name="prevurl" type="hidden"></input>
Нет смысла в валидации на клиенте (по крайней мере, с точки зрения безопасности, во многих случаях это, конечно, может быть хорошей функцией UX / юзабилити). Любые проверки, которые вы реализуете для реферера (независимо от того, имеет ли это сейчас смысл), злоумышленник может просто удалить это из javascript или просто опубликовать любое значение для переменной формы. Проверка должна быть на стороне сервера.
На сервере получение любых входных данных (включая строку, которая является действительным php или что-либо еще, если оценивается) является безопасным. Это что ты с этим делаешь это может быть проблемой. Вы должны быть осторожны и иметь в виду, что все, что приходит от запроса, является пользовательским вводом, и злонамеренный пользователь мог отправить что угодно. Вы, очевидно, не хотите использовать eval () как php, вы не хотите использовать его в запросах SQL, не заботясь о внедрении SQL, вы не хотите записывать его обратно на страницу без кодирования (это будет форма XSS), вы не хотите, чтобы ваши решения по управлению доступом были напрямую основаны на пользовательском вводе и т. д.
Но только получая (даже храня) это является Хорошо.
Других решений пока нет …