mysql注入+强制用户使用列表进行数据输入

时间:2016-03-25 18:15:00

标签: php html mysql

我正在阅读有关mysql注入的内容,我想确认一下,如果你强制用户使用列表选项为他们的输入写入mysql(并且这些输入设置为readonly),系统基本上是安全的,不能使用mysql注射?是否需要采取措施保护以这种方式开发的网站的恶意mysql注入尝试?

2 个答案:

答案 0 :(得分:1)

如果我理解你是对的那么没有。 您可以尝试强制用户,但用户输入的所有内容都发生在客户端。由于这是在客户端,并且客户端对网页具有绝对控制权,因此无论他收到的页面如何,他都可以将其操纵到他想要的任何内容,甚至可以生成自己的POST或GET请求。

有一些工具可以实现这一目标。

如果要保护数据库免受SQL注入攻击,我建议您仅使用预准备语句(How can I prevent SQL injection in PHP?) 您采取的任何对策都必须在服务器端实施。无论“限制”和“#34;他必须得到他的意见。

答案 1 :(得分:0)

根据问题中提供的信息:

问:...系统本质上是不是从mysql注入安全吗?

答:不,这并不能保证系统不会受到SQL注入攻击。

问:是否需要采取措施保护以这种方式开发的网站的恶意mysql注入尝试?

答:针对恶意攻击者利用SQL注入漏洞的最佳措施是首先防止SQL注入漏洞。

这意味着数据库交互的特定编码模式:带有绑定占位符的预处理语句。或者,至少可以正确转义SQL语句文本中包含的所有可能不安全的值。

您的网页可以有一个下拉列表框,用户可以从中进行选择,您的网页可以在Javascript中进行验证。但这并不能阻止恶意攻击者绕过它,并发送不符合javascript验证的请求。

处理请求的服务器上的脚本需要执行验证...可能与生成请求的网页上的javascript完成相同的验证。

但是,任何数据库交互都需要遵循阻止SQL注入漏洞的正常模式(即使用绑定占位符准备好的语句,或者至少可以正确地转义可能不安全的值。)

多条防线。

你一直在阅读的内容并不清楚。

作为起点,我建议您查看OWASP项目提供的信息。

https://www.owasp.org/index.php/SQL_Injection

这不是万能的,但它是一个很好的概述。如果您赶时间,可以查看SQL注入预防备忘单。