0

我正在使用基于 PHP、MySQL 的应用程序,其中从前端对服务器端代码的一些请求是使用 GET 请求完成的。在服务器端,我使用$_GET[variable]..

我使用的典型 URL 为:

http://localhost/mysite/processdata.php?variable='somedata'

假设用户执行操作时会生成上述 URL 并将其发送到服务器。但是用户总是可以更改 URL 中的查询字符串。有没有一种机制可以确定查询字符串是由应用程序生成的还是由用户生成的?并阻止由用户/非授权程序生成的处理?

4

1 回答 1

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,但你应该看看并自己决定。无论哪种方式,它始终归结为验证。

于 2013-09-20T03:54:06.290 回答