我正在使用基于MySQL的PHP应用程序,其中使用GET请求完成对前端服务器端代码的一些请求。
在服务器端,我使用$_GET[variable]
..
我用它的典型网址:
http://localhost/mysite/processdata.php?variable='somedata'
表示生成上述URL并在用户执行操作时将其发送到服务器。但是用户总是可以更改URL中的查询字符串。 是否有一种机制来查找查询字符串是由应用程序还是由用户生成的?如果由用户/非授权程序生成,则阻止处理?
答案 0 :(得分:0)
您永远无法判断您的应用是发送了它还是用户发送了它。但是,可以验证您的信息。例如:
$value = $_GET['variable'];
// Assuming you want the variable to be an integer
if ( preg_match( '/^\D+$/', $value ) ) {
// Use value for what you need
}
else {
// Show error
}
但是你不应该重新发明轮子。有许多库都带有该功能标准。 CodeIgniter就是一个例子。 Zend是另一个。我更喜欢CI,但你应该看一看并自己决定。无论哪种方式,它始终归结为验证。