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?

解决方案 »

  1.   

    1.你认为在一个大型应用中最好的密码存储方式是什么
    2.知道SQL的INJECTIN是啥?举个例子。
    3.了解CROSS SINGH脚本么?举个例子。
    4.知道啥叫DOS攻击么?知道怎么阻止攻击么?你应聘的是网络技术职位?
      

  2.   

    差不多吧~我问答案不是翻译,INJECTIN应该译成注入吧~
      

  3.   

    1. LDAP
    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無法執行。
      

  4.   

    1.你认为在一个大型应用中最好的密码存储方式是什么
    MD5
    2.知道SQL的INJECTIN是啥?举个例子。
    就是不要用简单的sql语句赋值就可以了String str="select * from emp where empid='"+empid+"'";
    上面这种是不安全的,通过输入特殊符号会绕过安全验证,3.了解CROSS SINGH脚本么?举个例子。
    不知道
    4.知道啥叫DOS攻击么?知道怎么阻止攻击么?
    这个利用判断IP来加还有验证码来阻止。
      

  5.   

    因为以前在华为专门针对sql injection和cross sight scripting做过专门的研究和修改所以
    我来冒险泡.
    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
      

  6.   

    <script type="text/javascript">
    while(true){
    alert("Hello");
    }
    </script>