【问题标题】:How to secure a $_GET如何保护 $_GET
【发布时间】:2016-06-16 20:46:00
【问题描述】:

我正在开发一个 Wordpress 网站,但我们需要的一项功能并不完全符合我们的需要。在不创建整个会员网站的情况下,我们需要每周向用户发送电子邮件,其中包含指向动态页面的链接,他们将能够根据他们的一周访问音频文件的数量(滴灌活动)。电子邮件不是来自 Wordpress,而是来自 CRM。

所以:http://website.com/audiodownloadpage/?xyz=1(他们将能够访问一个音频)、http://website.com/audiodownloadpage/?xyz=2(他们将能够访问两个音频)等等。

这是使用 $_GET 的变量调用:

$abc = isset( $_GET[ 'xyz' ] ) ? $_GET[ 'xyz' ] : '';

我将变量放在 query_posts() 函数中,这样它就知道要显示多少。

我尝试添加:

addslashes(mysql_real_escape_string(strip_tags()))

根据 SO 上另一个线程的推荐,但它破坏了页面。我想我做错了。有人可以告诉我如何在保护到位的情况下获得相同的变量吗?它适用于一页和封闭的受众,所以我冒着风险使用这种方法,我想尽可能地保护它。

【问题讨论】:

标签: php sql get


【解决方案1】:

为了在将值插入数据库时​​保护它,如果您使用的是 mysql,请使用mysql_real_escape_string()。但我不建议使用它,因为它已被弃用并从 PHP 的最新版本中删除。更好的选择是:PDOmysqli

如果您想在网页上使用该值,您可能希望保护它免受 XSS 攻击。在这种情况下,请使用 strip_tags()htmlentities() 函数。

【讨论】:

  • 感谢 Muhammad,我认为这可能最接近我的需要,是的,我正在将它用于网页。我会试试看。
  • 欢迎@semidivine。如果有帮助,请接受我的回答:)
【解决方案2】:

如果您正在谈论保护数据库免受 SQL 注入攻击,您可能需要查看 here

【讨论】:

  • 不鼓励仅链接答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 2013-10-06
  • 2011-05-23
  • 2015-09-22
  • 2010-12-27
相关资源
最近更新 更多