Я довольно новичок в PHP и использую пару переменных _GET, чтобы определить макет страницы/данные веб-сервиса и другую логику на странице. Я не храню данные или запись в БД любого типа. Какую дезинфекцию я должен использовать для этого?Как мне очистить переменные _GET, которые используются только на странице?
Например, один вар я использую как это:?
$querystring = $_SERVER['QUERY_STRING'];
if(isset($_GET['semester']) && $_GET['semester'] != ''){
$listxml = simplexml_load_file("http://path/to/webservice/?".str_replace('semester','term',$querystring));
Что происходит там, если QueryString имеет семестр = набор и не пустой, то я заменить его «термин» и пройти через запрос, как и к URL-адресу веб-службы (веб-служба использует переменную терминов, но переменная термина вмешивается в wordpress и перенаправляет на страницу сообщений для этого «термина» (тег/категория в WP), поэтому я передаю ее через WP в качестве семестра, а затем просто измените его на термин для вызова веб-службы.
Так что в этом случае я ничего не делаю с _GET, кроме передачи его как веб-сервис, что веб-служба делает с querystring из моих рук, но я должен «подготовить» его для них каким-либо образом?
-
У меня также есть случаи, подобные этим:
$display = '';
if (isset($_GET['display'])) {
$display = $_GET['display']; //set sort via querystring
} else {
$display = 'interest'; //set to default by interest
}
позже:
<div id='byalphabet' class='<?php global $display; if($display != 'alphabet'){echo 'hide';} ?>'>
и
<div id="byinterest" class="<?php global $display; if($display != 'interest'){echo 'hide';} ?>">
-
Кроме того, используя для некоторой динамической JavaScript:
$view = '';
if (isset($_GET['view'])) {
$view = $_GET['view']; //set view via querystring
}
Позже:
<script>
<?php if ($view != ''){ $view = str_replace('/','',$view); ?>
jQuery('#<?php echo $view; ?>').trigger('click'); //activate view option accordion pane
jQuery('html,body').animate({'scrollTop':jQuery('#<?php echo $view; ?>').offset().top - 50},500); //scrollTo view
</script>
-
Другие случаи включают в себя поиск массив для значения _GET array_search($_GET['major'], $slugs);
и перенаправлять страницы с помощью:
$parts = explode('/',$_SERVER['REQUEST_URI']);
Header("HTTP/1.1 301 Moved Permanently"); //SEO friendly redirect
Header("Location: http://www.site.ca/programs/outline/".$parts[3]."/");
Ed Это: я прочитал многие из предложенных похожих вопросов, которые появились, но в основном они ссылаются на использование данных каким-то другим способом, например, на вставку в БД.
'зрения =«); предупреждение (»XSS' и вы сделали – Gumbo
@Gumbo Оно не похоже на работу - это возможно PHP автоматически изменяет?. кавычки к экранированию, потому что выход JS заканчивается «вместо», который разрушает атаку, т. е.: jQuery ('# \'); alert (\ 'XSS'). trigger ('click'); ' – tsdexter
Или используя лучшая атака: '? view = '); alert (' XSS '); jQuery (' #' заканчивается 'jQuery ('# \'); alert (\ XSS \ '); jQuery (\' # ') .trigger ('click'); ', который также просто бросает ошибки JS - я не могу заставить его принять цитату, как есть с html-сущностью, процентом сущности или прямой цитатой char. Я знаю, что мне все еще нужно санировать но PHP автоматически выполняет кавычки? – tsdexter