我有这个示例网站
site.com/path/file.php
我想阻止用户在file.php?id=
file.php
或任何内容
我该怎么办?我想要这个请求的URL,并防止任何其他参数
我认为要做的就是解析网址,但这对参与播放有帮助吗?
我的意思是如果解析器读取file.php?id
并请求页面file.php?page=
答案 0 :(得分:1)
您可以使用以下命令捕获URL中的任何参数:
if (count($_GET)+count($_POST) > 0)
{
<execute some error code>
die('Ah, you cannot do that!');
}
答案 1 :(得分:0)
您可以尝试的一种方法是不使用同一页面来处理函数。使用AJAX请求并限制指定的Post PHP页面,如&#34; /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']);
}
}