判断服务器类型和后台数据库类型; 确定可执⾏情况
对于有些攻击者⽽⾔,⼀般会采取sql注⼊法。下⾯我也谈⼀下⾃⼰关于sql注⼊法的感悟。 注⼊法:
从理论上说,认证页中会有型如:
select * from admin where username=’XXX’ and password=’YYY’ 的语句,若在正式运⾏此句之前,如果没有进⾏必要的字符过滤,则很容易实施SQL注⼊。
如在⽤户名⽂本框内输⼊:abc’ or 1=1-- 在密码框内输⼊:123 则SQL语句变成:
select * from admin where username=’abc’ or 1=1 and password=’123’ 不管⽤户输⼊任何⽤户名与密码,此语句永远都能正确执⾏,⽤户轻易骗过系统,获取合法⾝份。 猜解法:
基本思路是:猜解所有数据库名称,猜出库中的每张表名,分析可能是存放⽤户名与密码的表名,猜出表中的每个字段名,猜出表中的每跫锹寄谌荨?BR> 还有⼀种⽅式可以获得你的数据库名和每张表的名。 就是通过在形如:http://www. .cn/news?id=10’的⽅式来通过报错获得你的数据库名和表名! 对于jsp⽽⾔我们⼀般采取⼀下策略来应对: 1、PreparedStatement
如果你已经是稍有⽔平开发者,你就应该始终以PreparedStatement代替Statement. 以下是⼏点原因
1、代码的可读性和可维护性.
2、PreparedStatement尽可能提⾼性能. 3、最重要的⼀点是极⼤地提⾼了安全性.
因篇幅问题不能全部显示,请点此查看更多更全内容