【安全】——程序员应该具备的安全意识(一)

来源:互联网 发布:网络分流器的作用 编辑:程序博客网 时间:2024/06/07 18:02

在这篇文章中将分享程序员在编程过程中应了解的安全小常识。

来源

http://securitycompass.com/training/free/course-demos/

SQL Injection

SQL Injection的“入侵场所”

1.Web Form
2.URL Parameter
3.Web Service

以URL Parameter为例

假如界面上需要用户注册,注册时要选择所在国家和城市。城市下拉框的内容随着国家下拉框的内容变化而变化,也就是级联的。

这里写图片描述

Normal Case

前端进行Ajax请求时,请求的数据封装在PostData;
后端处理时,将传进来的参数拼接在SQL字符串上;

这里写图片描述

Evil Case

将PostData中的数据通过 UNION、以及最后的注释符“” ,成功使原本的SQL语句多加了一个查询内容,即查询所有的用户。

这里写图片描述

在Oracle,SQL Server中,注释符是“- -”
在Mysql中,注释符是“#”;
如下图中,以Mysql为例,显示了SQL注入过程和结果

select * from user where username='xcy' union select * from user #' 

这里写图片描述

本来应该只有一条数据,但是把用户表中的其他数据也都显示出来了。

Defence

这里写图片描述

0 0