0

我有一个 PHP 脚本,它根据 GET 变量中的 id 值将从 mysql 数据库中检索不同的数据。id 的值在任何时候都应该是一个数字。与其将我当前的 mysql 查询更改为使用 PDO,不如在 Get 变量上运行 isumeric 并退出脚本,如果它不是一个足以在所有或大多数情况下防止注入的数字,即,是否仍有可能进行某些注入sql通过isnumeric滑过?

只是对重复问题问题的谦虚评论,我查看了建议的重复问题,并认为作为初学者,表面上可能不清楚我的问题与那个问题完全相同。

4

2 回答 2

1

是的,在这种情况下它会保护。不,这将是一个非常非常糟糕的主意,除非您绝对知道自己在做什么并在评论中正确记录选择。

针对任何类型的安全性有两种策略:

  1. 否认。选择适合手头情况的惰性方法,而不是从根本上解决它。现在等待你忘记这是你的“安全”的那一天,你更改代码,它突然变得容易受到攻击,并且儿童色情片被上传到你的网站。
  2. 专业精神。通过转义或使用准备好的语句,彻底解决问题,验证输入并正确保护您的数据库层。

选择专业,一年后感谢我。

于 2013-05-06T23:38:07.503 回答
0

好像这个问题已经被回答了。是的,isNumeric 技巧本质上只允许经过净化的输入,从而保护您的应用程序免受 SQL 注入。

于 2013-05-06T23:38:06.253 回答