2016-06-17 97 views
-2

我有這個站點如何防止url參數?

site.com/path/file.php 

我想阻止用戶添加file.php?id=file.php

後的任何事情我應該怎麼辦?我想這樣做的網址,因爲它是,並防止任何額外的參數

我想要做的事情是解析的網址,但這將有助於玩參數?

我的意思是如果解析器讀取file.php?id和請求的網頁file.php?page=

+5

你不能阻止它,但你可以忽視它或重定向無效請求。 –

+1

如果你不使用GET參數,somone添加它們並不重要。我相信很少有人會嘗試只是隨機添加params到一個網址。 – JimL

+0

你可以在'.htaccess'中做一個重定向。 – chris85

回答

1

你能趕上任何參數,在URL或張貼,有:

if (count($_GET)+count($_POST) > 0) 
{ 
    <execute some error code> 
    die('Ah, you cannot do that!'); 
} 
+0

這是幫助太謝謝 –

0

一種方法,你可以嘗試不使用相同的頁面處理功能。使用AJAX請求並限制您指定的Post PHP頁面,如「/include/processmyform.php」或其他內容,以允許AJAX請求/僅允許來自Web服務器的AJAX請求。

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
if(!IS_AJAX) { 
    #You can use this condition to ignore or block their request. 
    die('That method is not allowed!'); 
} else { 
    #If they did post AJAX, make sure it's a legitimate request from your server. 
    $pos = strpos($_SERVER['HTTP_REFERER'],getenv('HTTP_HOST')); 
    if($pos===false) { 
     die('That method is not allowed!'); 
    } else { 
     #All good - Cooking with hot grease! 
     $id = htmlspecialchars($_POST['id']); 
     $somevar = htmlspecialchars($_POST['someparam']); 
    } 
}