Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 针对SQL注入的建议_Php_Jquery_Mysql_Sql_Ajax - Fatal编程技术网

Php 针对SQL注入的建议

Php 针对SQL注入的建议,php,jquery,mysql,sql,ajax,Php,Jquery,Mysql,Sql,Ajax,我正在处理一个现有的网页,并使用jQuery修改DOM 在我的脚本中,POST-Ajax调用向php文件发送参数registration\u id,该参数仅由数字组成(例如310)。 此参数在SQL请求中传递,该请求返回3个元素(id,context\u id,trackingstable中花费的时间) 因此,我在php代码中实现了一些安全性: 我检查是否设置了POST参数 我检查长度是否小于5 我检查参数是否仅由ctype_digit()的数字组成 第四种安全性:对数据库的访问是严格的:我创

我正在处理一个现有的网页,并使用jQuery修改DOM

在我的脚本中,POST-Ajax调用向php文件发送参数
registration\u id
,该参数仅由数字组成(例如310)。 此参数在SQL请求中传递,该请求返回3个元素(
id
context\u id
trackings
table中花费的时间)

因此,我在php代码中实现了一些安全性:

  • 我检查是否设置了POST参数
  • 我检查长度是否小于5
  • 我检查参数是否仅由ctype_digit()的数字组成
  • 第四种安全性:对数据库的访问是严格的:我创建了一个用户,它只能在
    跟踪
    表中选择字段
    id
    context\u id
    花费的时间
你觉得怎么样? 你认为我必须做好准备吗

提前感谢您的建议


托马斯你不知道你不知道的东西。看起来您对安全性考虑得已经够多了,但是如果有人知道一个仍然会输出比您想要的更多的技巧,该怎么办?不要试图实现自己的安全系统

准备好的声明被证明是安全的。如果你想确保自己的安全,就用这个。您可以保留这些检查,它们仍然可以用于提供用户反馈


另一方面,我想不出只有小于10000的数字才能进行任何注入。

使用准备好的语句可以确保sql不能被注入。你可以检查很多东西,但是你可能会忘记或监督一些事情。另外,请添加以下内容:(检查@Veda下面更新、更好、更安全的mysqli函数)。@Cagy79如果有一个不推荐使用,那么使用这个函数也可以避免使用
\u real\u escape\u string
,而使用参数化查询(根据问题的前两条注释)