程序员人生 网站导航

SQL注入解决思路(C#示例)

栏目:数据库应用时间:2015-01-30 08:45:12

最近在编程中遇到1个SQL注入防护的问题。在这里顺便把SQL注入小结1下。以MYSQL(5.1)为例。

1、常规的SQL语句

视察SQL语句

SELECT * FROM [tableName] WHERE col1='value1'

这个语句由3个部份组成,SELECT子句挑选得到结果,FROM子句指定了挑选的范围,WHERE子句指定了条件。当在其中进行以下置换:
SELECT * FROM [tableName] WHERE 1
以后,选出了[tableName]表中的全部内容。分析其语法不难发现,WHERE将其后的真值表达式求值,然后作为挑选的条件。


2、WHERE子句的理解

现在(在MYSQL5.1)中测试以下语句
SELECT * FROM [tableName] WHERE false or 1=‘1’ and '1'='1' and "1"="1"
一样得到了[tableName]表种的全部内容。
这个测试说明了两点:
1、WHERE对后面的表达式进行真值计算
2、不带符号、'与"都可以通过真值测试,可能不是个别特殊符号的问题


3、WHERE子句在编程中的使用

通常是采取字符串拼接的方式
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐