我在上一个问题中被告知我的查询很容易SQL注入。

get_stats = mysql_query("SELECT * 
                               FROM visitors 
                              WHERE site='

我在上一个问题中被告知我的查询很容易SQL注入。

<*>

解决此问题的最简单方法是什么?你是否有关于注射问题的进一步阅读? (我可能会想念谷歌的东西)。谢谢!

GET[site]' AND date BETWEEN '$start_date' AND '$end_date' ");

解决此问题的最简单方法是什么?你是否有关于注射问题的进一步阅读? (我可能会想念谷歌的东西)。谢谢!

有帮助吗?

解决方案

使用准备好的陈述

在大多数情况下,准备好的声明会以安全的方式将您的查询与参数结合起来。

其他提示

$ _ GET ['site']是一个直接来自浏览器中URL的值,这意味着用户可以轻松地将此值更改为他们想要的任何值,您应该在发送之前检查/清理该值,实际上是所有值到数据库。

这样的事情将是一个开始,仍然可以使用更多的工作,并且有很多方法可以做到这一点,我会创建一个自定义函数/类来轻松地通过整个网站传递所有变量,这可以简单地重复这样的东西

$site = mysql_real_escape_string(

$ _ GET ['site']是一个直接来自浏览器中URL的值,这意味着用户可以轻松地将此值更改为他们想要的任何值,您应该在发送之前检查/清理该值,实际上是所有值到数据库。

这样的事情将是一个开始,仍然可以使用更多的工作,并且有很多方法可以做到这一点,我会创建一个自定义函数/类来轻松地通过整个网站传递所有变量,这可以简单地重复这样的东西

<*>GET['site']); $start_date = mysql_real_escape_string($start_date); $end_date = mysql_real_escape_string($end_date); get_stats = mysql_query("SELECT * FROM visitors WHERE site='$site' AND date >= '$start_date' AND date <= '$end_date' ");

mysql_real_escape_string 是最基本的这里最简单的安全形式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top