我应该在url中隐藏查询字符串

the*_*cus 1 php mysql security

我的一些页面是使用$ _Get从MySQL中提取的结果生成的.这意味着网址会像这样结束/park.php?park_id=1.这是一个安全问题,是否最好从URL隐藏查询字符串?如果是这样我该如何去做呢?

此外,我在某处读过Google没有使用a索引网址?,这将是一个问题,因为这些是我网站的主要页面.这有什么道理吗?

谢谢

Dav*_*vid 5

如果这是敏感信息,那只是一个安全问题.例如,您将用户发送到此URL:

/park.php?park_id=1
Run Code Online (Sandbox Code Playgroud)

现在,用户知道当前正在查看的公园在数据库中具有系统标识符"1".如果用户然后手动请求该怎么办?:

/park.php?park_id=2
Run Code Online (Sandbox Code Playgroud)

他们是否危及您的安全?如果他们不被允许查看公园ID 2,那么此请求应该适当地失败.但问题是它们碰巧知道 ID为1或2吗?

在任何一种情况下,所有用户正在做的是发出请求.服务器端代码负责适当地处理该请求.如果不允许用户查看该数据,则拒绝该请求.不要试图阻止用户发出请求,因为他们总能找到办法.(他们可以手动输入.即使没有首先访问过您的网站.)安全性是在响应请求时发生的,而不是在制作时.

他们不允许知道一些数据.但ID可能不是那个数据.(或者至少不应该,因为数字ID很容易猜到.)

  • @HamZa:我不确定我理解.你指的是SQL注入吗?这是服务器端代码中的漏洞(通过不恰当地处理请求)并且与查询字符串值无关.使用PUT/POST值,请求主体等也可能发生SQL注入.安全问题不是存在查询字符串值,而是服务器上存在错误代码. (3认同)