繁体   English   中英

最佳实践防止PHP URL参数mischif

[英]Best practice to prevent PHP URL Parameter mischif

我们最近发现我们客户的一个 PHP 网站在传递 URL 参数以选择/显示产品的页面上遭受攻击。

代码是这样的,他们“不应该”能够因为它只是选择一个产品 ID 而导致问题,但是他们正在发送成千上万的查询来寻找一些漏洞并在他们的尝试中消耗许多服务器资源。 我们已经屏蔽了违规的 IP 地址,当然,它们只是转移到了不同的地址。

问题:URL参数是否不再推荐用于简单的页面内容展示?

我正在考虑更新页面以使用 $_SESSION 值,并在每次选择新页面时重置它。

我一直在阅读“URL 参数污染”,看看它是如何被更频繁地用于利用网站的。

URL参数是web页面之间传递数据的常用方法,可用于动态显示网站内容。 然而,正如您所观察到的,它们也可以用于恶意攻击,例如在“URL 参数污染”的情况下,攻击者发送大量带有操纵或意外参数的请求,以试图利用网站的代码。

减轻此类攻击的一种方法是使用服务器端验证来确保 URL 中传递的参数有效且符合预期。 例如,您可以检查 URL 中传递的产品 ID 是否为有效的 integer 并且对应于数据库中的实际产品。 此外,您可以实施速率限制以防止来自单个 IP 地址的过多请求。

使用您提到的 session 变量是另一种选择,但重要的是要确保 session 得到适当保护,并且在每次选择新页面时重置 session 变量以防止 session 固定攻击。

一般来说,保持网站及其依赖项为最新并定期检查代码是否存在安全漏洞始终是个好主意。 此外,最好使用 web 应用程序防火墙 (WAF) 来帮助保护您的网站免受常见的基于 Web 的攻击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM