[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Cookies и URL
eLDeR
Добрый день!
Не могу понять как защитить код от сторонних иньекций для url. Я так понимаю что можно для гет параметра задать любой url. интерисует безопастность сие кода :)
[код должен менять переменную куки и оставатся на этой же странице]
Код 1 - Работает:
<?php
function
request_url()
{
$result = '';
$default_port = 80;
if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=='on')) {
$result .= 'https://';
$default_port = 443;
} else {
$result .= 'http://';
}
$result .= $_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT'] != $default_port) {
$result .= ':'.$_SERVER['SERVER_PORT'];
}
$result .= $_SERVER['REQUEST_URI'];
return $result;
}

if( isset($_REQUEST['lang']))
{
if ($_REQUEST['lang'] == 1)
{
setcookie('fettle', 'ru');
header("Location:".$_GET['url']);
}
else if ($_REQUEST['lang'] == 2)
{
setcookie('fettle', 'en');
header("Location:".$_GET['url']);
}
}


//И ссылки для перехода на эту же страницу но с измененным параметром куки
echo "<hr><a href=\"index.php?lang=1&url=".request_url()."\">Русский</a>";
echo "<hr><a href=\"index.php?lang=2&url=".request_url()."\">Английский</a><hr>";
?>
Код номер 2 через форму ( почему то не работает )
function request_url()
{
$result = '';
$default_port = 80;
if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=='on')) {
$result .= 'https://';
$default_port = 443;
} else {
$result .= 'http://';
}
$result .= $_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT'] != $default_port) {
$result .= ':'.$_SERVER['SERVER_PORT'];
}
$result .= $_SERVER['REQUEST_URI'];
return $result;
}

if (@$_REQUEST['langs'])
{
echo $_POST['url']."<BR>";
echo $_POST['lang']."<BR>";
}

echo $_COOKIE["fettle"]."<br>";
echo $HTTP_COOKIE_VARS["TestCookie"]."<hr>";

echo "<form action=\"index.php\" method=\"post\" name=\"langs\">
<input type=
\"hidden\" name=\"lang\" value=\"ru\"></input>
<input type=
\"hidden\" name=\"url\" value=\"".request_url()."\"></input>
<input type=
\"image\" name=\"langs\" src=\"image/system/lang_ru.png\" WIDTH=\"30\" HEIGHT=\"20\">";

echo "<form action=\"index.php\" method=\"post\" name=\"langs\">
<input type=
\"hidden\" name=\"lang\" value=\"en\"></input>
<!-- <input type=
\"hidden\" name=\"url\" value=\"".request_url()."\"></input> -->
<input type=
\"image\" name=\"langs\" src=\"image/system/lang_ru.png\" WIDTH=\"30\" HEIGHT=\"20\">";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.