Мне нужно создать форму, действие которой возвращает вас на ту же страницу - включены параметры GET. Я думаю, что я могу сказать что-то эффект:
echo '<form action="'.$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'].
'" method="post">'
Это похоже на работу и тестирование пропусканием пара XSS атак, кажется, чтобы быть успешным, так как выход из QUERY_STRING, кажется URL закодирован. Однако PHP documentation не упоминает об этом, поэтому я не уверен, что могу доверять этому поведению.
Можно ли использовать QUERY_STRING, как я выше? Если нет, что я могу сделать вместо этого? Будут оценены ссылки на документацию.
Обновление переключилось на SCRIPT_NAME, просто перепуталось, какой из них был в порядке, а что было плохо в моей голове, спасибо, что поймал меня. action=""
действительно хорошо справляется с моей конкретной проблемой, но мне все же интересно, если QUERY_STRING предварительно обработана, поэтому она безопасна в использовании или нет, так как есть другие случаи, когда вы можете повторно использовать строку запроса, предполагая, что это безопасно так.
Никогда не думайте. Вы никогда не знаете, что могут сделать эти мошенники! – BoltClock
Конечно, нет :) это необработанные значения из uri – RobertPitt
, если вы хотите отправить пользователя обратно на ту же страницу, вам даже не нужно указывать, какое действие ... – ajreal