1.What is the best way to store and verify passwords for a Web application ?
2.What is sql injection ? Show an example.
3.Explain cross sight scripting ? Show an example.
4.What is a Denial of Service(DoS) attack ? How do you stop it?
2.What is sql injection ? Show an example.
3.Explain cross sight scripting ? Show an example.
4.What is a Denial of Service(DoS) attack ? How do you stop it?
2.知道SQL的INJECTIN是啥?举个例子。
3.了解CROSS SINGH脚本么?举个例子。
4.知道啥叫DOS攻击么?知道怎么阻止攻击么?你应聘的是网络技术职位?
2. 用字串組成SQL的程序,例如
"SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"'"
userName 填入 "' OR '1'='1";
passWord 填入 "' OR '1'='1";
變成
SELECT * FROM users WHERE (name = '' OR '1'='1') and (pw = '' OR '1'='1');"3. 和 2 有點像,當有可輸入文字的地方時,輸入可執行的 script,如果網站沒防範,就會執行。
例如 填入
<script type="text/javascript">
while(true){
alert("Hello");
}
</script>4. 簡單的說就是用人海戰術去弄掛網站。拼命送request,讓正常的request無法執行。
MD5
2.知道SQL的INJECTIN是啥?举个例子。
就是不要用简单的sql语句赋值就可以了String str="select * from emp where empid='"+empid+"'";
上面这种是不安全的,通过输入特殊符号会绕过安全验证,3.了解CROSS SINGH脚本么?举个例子。
不知道
4.知道啥叫DOS攻击么?知道怎么阻止攻击么?
这个利用判断IP来加还有验证码来阻止。
我来冒险泡.
1.LDAP
2.sql injection(利用程序中存在的SQL漏洞进行注入,一般危险性存在于查询语句)
产生原因:
1).后台SQL拼装:
后台存在将参数拼装到SQL上的行为
StringBuffer bf = new StringBuffer("select * from t_user");
bf.append(" where userId='"+userId+"'");
bf.append(" and password='"+password+"'");
就像#5的例子一样.没什么好说的.所以为了避免这种问题,应尽量别用拼装,就算没办法要用,也要把
要拼装上的参数给过滤掉.过滤的方法可以用response里的一个解码方面的方法,方法名忘了.并且尽量用
PrepareStatement设置参数,因为它能对特殊自符进行转码.
2).Ibatis框架
(相信大型企业一般都会要这个框架)Ibatis框架中的SQL众所周知有两种方式,一个是#,一个是$
$是将参数原封不动的替代进去,应尽量别用.而#也能将特殊自符进行转码,相对的安全性高很多.
3.cross sight scripting(跨站脚本)
在参数中注入脚本信息来恶意获取破坏程序.脚本的力量可是很强大的.
比如:对方在插入信息时在某个输入框内输入:<script>alert('a');</script>或者javascript:alert('a');将数据插入数据库,然后再查出来时,页面会读到<script>alert('a');<script>这段信息,并将它作为一个脚本执行.如果用户将alert('a');换成攻击性的脚本,那后果是很严重的.
解决方案:
1).将参数中的特殊字符转码再存入数据库
2).页面凡是显示数据库信息的地方都应当尽量避免使用<%=>输出,如果用可以用response转码,尽量不使用不能转码的标签和表达式,如EL表达式,如果要用EL表达式最好搭配C标签使用.
如:<c:out name="${value}"/> ,最好不要直接在页面${value}..C标签自带转码功能.另外重点申明下,有些人以为只要在用户输入的地方加强防备就行了,其实无论是什么,只要有参数就存在危险.
一个下拉列表,一个单选按钮,一个做了脚本验证的输入框,甚至一个隐藏标签.只要那个参数要传入后台就存在危险.因为黑客可以用各种各样的工具来截取你的参数并进行参数修改.比如:Paros工具,能将各种请求的URL和参数都截取,并修改.我们之前研究这些,防止漏洞发生就是用这个工具扫描测试.4.DOS攻击是黑客最犀利的武器,它可以获取连接别人电脑的各种端口,要说到它的含义和防范涉及非常广.建议
楼主去中关村看下:http://xiazai.zol.com.cn/article_topic/42/424623.html
while(true){
alert("Hello");
}
</script>