• 网站安全,互联网常用攻击方式。


            PHP高级工程师之网站安全

        在这里和大家分享一下多数网络黑客常用的攻击方式及预防措施。

        如有不善,多提意见(QQ:1595068971-邮箱:1595068971@qq.com)

        1.SQL注入

          攻击描述:表面来说是拼接字符串,构成sql语句,没有使用sql语句预编译,绑定变量。更深层次的说是将用户输入的字符串当成了sql语句来执行。

          危害说明只要找到一个注入点,就可以通过sql语句实现无账号登陆,甚至篡改数据库。

          处理方法:基本上大家都知道采用sql语句预编译和绑定变量,是防止SQL注入的最佳方法。但其中的深层次原因就不见得都理解了。

            String sql = "select id, no from user where id=?";

            PreparedStatement ps = conn.prepareStatement(sql);

            ps.setInt(1, id);

            ps.executeQuery();

            这就是典型的采用了SQL语句预编译和绑定变量。为什么这样就可以防止sql 注入呢?

            其原因就是:采用了PreparedStatement,就会将sql语句:"select id,name from user where id=?"预先编译好,也就是SQL引擎会预先进行语法分析,产生语法树,生成执行计划,也就是说,后面你输入的参数,无论你输入的是什么,都不会影响该SQL语句的语法结构了,因为语法分析已经完成了,而语法分析主要是分析sql命令,比如 select,from,where,and,or,order by等等。所以即使你后面输入了这些命令,也不会被当成sql命令来执行了,因为这些sql命令的执行,必须先得通过语法分析,生成执行计划,既然语法分析已经完成,已经预编译过了,那么后面输入的参数,是绝对不可能作为sql命令来执行的,只会被当作字符串字面值参数。所以sql语句预编译可以防御sql注入。

        2.XSS跨站脚本攻击(Cross-site scripting

          攻击描述:

          危害说明:

          处理方法:

        3.CSRF跨站请求伪造攻击(Cross-site request forgery

          攻击描述:伪造请求,模仿用户提交表单的行为,从而达到修改用户数据,或者执行特定任务的目的,CSRF常常和XSS配合起来,但也可以通过别的方式,比如诱导用户点击一个包含攻击的连接。

          危害说明:模仿用户提交表单的行为,从而达到修改用户数据,或者执行特定任务的目的

          处理方法:采用post,增加攻击难度。对请求进行验证,确保该请求是用户本人填写并提交的,可以在会话中增加token,确保看到信息和提交信息的是一个人。

        4.Cookie攻击

          攻击描述:利用javascript获取网站cookie,在浏览器地址栏输入javascript:alert(document.cookie).立刻就可以看到当前站点的cookie

          危害说明:所有登陆状态这些都是加你在cookie上的!假设我们登陆后的cookie被人获得,那就回有暴露个人信息的危险!

          处理方法:

            第一种:php.ini中session.cookie_httponly = 1 或 TRUE(开启全局属 性)。

            第二种:代码开启ini_set("session.cookie_httponly", 1);或session_set_cookie_params(0, NULL, NULL, NULL, TRUE);

            第三种:Setcookie和setrawcookie添加阿第七个参数设置为TRUE;  

        5.重定向攻击

          攻击描述:钓鱼公鸡者,给受害者发送一个合法链接,点击链接时,用户被重定向一个似是而非的非法网站,骗取用户信息,窃取用户资料。

          危害说明:骗取用户信息,窃取用户资料。

          处理方法:我们要对所有重定向操作进行审核,避免重定向到一个危险的地方,将合法的要重定向的URL添加到白名单中,非白名单上的域名重定向时拒绝。也可以重定向token在合法的url上加上token重定向时进行验证。

          

          

  • 相关阅读:
    How to publish ASP.NET application
    Enable(Disable) JavaScript on Browsers(Opera,IE,Firefox,Googlechrome,Safari)
    批处理学习笔记
    [转] Springboot 解决跨域的四种姿势
    HTML+CSS编写规范
    利用CSS3的transform做的动态时钟
    JS特效文字逐个显示
    Asp.Net平台下的图片在线裁剪功能的实现
    CSS3实践之路(一):CSS3之我观
    推荐个通用的多图片上传插件 multiimage。
  • 原文地址:https://www.cnblogs.com/wangboshen/p/7360329.html
Copyright © 2020-2023  润新知