首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在清理$_get变量时,哪个更有效?

在清理$_get变量时,哪个更有效?
EN

Stack Overflow用户
提问于 2011-08-03 20:03:40
回答 5查看 405关注 0票数 0

字符串$title只能是小写字母数字或符号"-“。

在这种情况下,以下哪种方法是有效防御安全漏洞的方法?

代码语言:javascript
复制
$title=$_GET["title"];
$title = strtolower(preg_replace("/[^a-z0-9\-]+/i", "-", $title));
< mysql query using $title goes here >

代码语言:javascript
复制
$title=$_GET["title"];
$title = mysql_real_escape_string($title);
< mysql query using $title goes here >
EN

回答 5

Stack Overflow用户

发布于 2011-08-03 20:07:35

你应该同时做这两件事。

代码语言:javascript
复制
$title = strtolower(preg_replace("/[^a-z0-9\-]+/i", "-", $title));
And then $title = mysql_real_escape_string($title);

对MySQL值进行转义总是一个很好的做法,在这种情况下,转义它是没有用的,但是如果将来标题的规则发生了变化,并且您可以放入任何字符,那么您可能会忘记更改它

票数 2
EN

Stack Overflow用户

发布于 2011-08-03 20:05:46

永远不要使用您自己的转义方法来转义SQL查询;数据库服务器会做得更好。

回答这个问题:regexp通常非常慢。我想函数调用会快得多。

此外,永远不要依赖用户的输入。

票数 0
EN

Stack Overflow用户

发布于 2011-08-03 20:06:43

我将使用mysql_real_escape_string,这将消除大部分mysql注入问题。如果标题不存在(例如,因为有人正在尝试执行mysql注入),那么将找不到任何行,因此,您将显示404错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6926153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档