Этот сценарий перенаправления откроет меня для внедрения кода или включения удаленного файла?
Недавно я наткнулся на статью в блоге об использовании PHP-скриптов для перенаправления партнерских ссылок. Это заставило меня задуматься, был ли этот сценарий безопасным или нет. Я слышал, что использование переменной $_GET может привести к уязвимости.
Мы ценим любые предложения. Достаточно ли будет проверки ввода для буквенно-цифровых символов и дефиса ('-')?
Для этого сценария ссылки будут иметь вид:
http://www.somesite.com/amazon.php?asin=XXXXXXXXXX
или же
http://www.somesite.com/amazon.php?id=some-keyword
Вот amazon.php:
<?php
$id = $_GET['id'];
$asin = $_GET['asin'];
if ($asin != NULL)
{
header("Location:http://www.amazon.com/exec/obidos/ASIN/".$asin."/fantasticaffiliate-20");
exit;
}
else
{
$links = array(
"keyword-one" => "http://www.amazon.com/b/?node=1122334455&tag=fantasticaffiliate-20",
"keyword-two" => "http://www.amazon.com/exec/obidos/ASIN/1352434213/fantasticaffiliate-20"
);
header("Location:".$links[$id]);
exit;
}
?>
Спасибо как всегда!
1 ответ
Решение
Да, так и будет. Ни один из этих символов в любой комбинации не является достаточным, чтобы вызвать проблему XSS.