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