2012-01-17 2 views
9

У меня есть правила в моей .htaccess для страниц, показать свойство идентификатор и т.д. ...параметров Validate URL в PHP

Я хочу, чтобы убедиться, что я проверить каждый параметр я получаю право им запрос получать.

у меня есть:

RewriteRule ^(.*)$ page.php?page=$1 
RewriteRule ^property/(.*)$ property.php?pid=$1 

так в моем PHP я:

$page = $_GET['page']; 

и

$propertyid = $_GET['pid']; 

Теперь мне нужно, чтобы защитить их, но я хочу знать, какой метод лучше всего использовать для их защиты, и это то, где они потеряны.

+0

$ _GET [ «страница»] = числовой и Только буквы? $ _GET ['pid'] только числовая? –

+3

этот вопрос повсеместно. 1) что это связано с SEO? 2) что вы подразумеваете под «подтверждением» и/или «безопасностью»? – helloandre

+0

да я только получаю числовые и буквы для страницы и числовые для pid –

ответ

15

Я хотел бы сказать, чтобы использовать эти правила:

RewriteRule ^([a-z0-9]+)/?$ page.php?page=$1 [L,NC] 
RewriteRule ^property/([0-9]+)/?$ property.php?pid=$1 [L,NC] 

таким образом, если кто-то входит любые символы, кроме букв и цифр (для страниц) и номера (для свойства), это wil l показать страницу не найдена.

Если вы хотите действительно, чтобы быть уверенным, вы можете

$page = mysql_real_escape_string($_GET['page']); просто убедитесь, что соединение с базой данных открыто, и вы можете бросить ФИД как $propertyid = (int)$_GET['pid'];

0

Я думаю, что с параметром страницы у вас должен быть список ассемблерных страниц, а после получения «страницы» вы проверяете, находится ли «страница» в списке принятия. Например:

$arr_pages = ('page1','page2','page3'); 
$page = $_GET['page']; 
if(in_array($page,$arr_pages)) 
{ 
// do some thing 
} 
else 
{ 
// page not found 
} 

И ID:

$propertyid = intval($_GET['pid']); 

надеюсь, что это поможет :)

Смежные вопросы