首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制转换为int而不是mysql_real_escape_string是否安全

问强制转换为int而不是mysql_real_escape_string是否安全
EN

Stack Overflow用户
提问于 2012-10-14 23:45:37
回答 3查看 1.9K关注 0票数 3

我只是想知道,我的应用程序需要尽可能快,并且变量已经转换为int,所以如果可以避免的话,我不想转义字符串。

示例如下:

代码语言:javascript
复制
$var1 = (int)$_POST['number1'] //User input;
mysql_query("INSERT INTO ... $var1 ..");

这在任何情况下都是安全的,还是我也应该mysql_real_escape_string $var1?

有时我也会md5() vars而不是转义它们,但我想这没问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-14 23:48:24

是的,这将是安全的,但需要注意的是,任何不是有效整数的值都将被强制转换为0,这可能会导致副作用。

正如minitech所说,使用准备好的语句确实应该是一种方式,因为你将不再需要担心这一点。

然而,更重要的是,性能在这里并不是一个真正的问题,也不值得考虑。无论您转义还是不转义字符串,都不会对应用程序的性能产生任何影响(至少如果它不是兆字节大小的话)。过早的优化通常是浪费时间--这样的“优化”只会使代码更难阅读和理解,从长远来看,这要重要得多。

票数 6
EN

Stack Overflow用户

发布于 2012-10-14 23:49:32

正如minitech所说,好的做法是确保你也检查它是一个整数。使用预准备语句真的会更安全,不过,我最近开始使用PDO,不会再回去了。

票数 3
EN

Stack Overflow用户

发布于 2012-10-14 23:49:06

这是安全的,但请记住,任何字符串都会转换为0,而不是null或类似的值。

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

https://stackoverflow.com/questions/12883811

复制
相关文章

相似问题

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