zoukankan      html  css  js  c++  java
  • Web应用程序的安全问题

    常规的安全问题主要分为以下几大类

    一,跨站脚本攻击(XSS)

    指的是攻击者向web页面注入恶意的Javascript代码,然后提交给服务器,但是服务器并没有做校验和转义等处理,随即服务器的响应页就被植入了那些恶意的代码。

    应用场景:

    (1)一般都见于客户端的表单信息的提交,例如在表单address一栏,用户输入‘<script>alert('攻击页面')</script>’,提交的时候服务器并没有校验,在新的响应页面,当浏览器解析到script标签的时候,这段代码就会直接运行。以上只是一个简单的例子,这段代码可以换成任意的恶意代码。

    (2)url中注入script

    正常访问下的URL :http://www.vulnerable.site/welcome.html?name=Jeremy

    访问的URL中注入脚本的:http://www.vulnerable.site/welcome.html?name=<script>alert(document.cookie)</script>

    分类:

    反射型:当带有恶意性脚本代码的请求服务器时,未过滤,直接将为编码的代码直接返回给响应页

    持久型:带有恶性脚本的代码被保存在web服务器端,每次用户访问这个页面的时候,这个恶性代码就会被自动执行

    解决方法:

    (1)输入过滤;对用户输入的内容进行过滤

    (2)输出转义;对于服务器端返回给客户端的内容进行转义,或者是定义一套加密的方法,客户端依据一定的规则进行解密

    二,跨站请求伪造(CSRF)

    指的是利用用户的身份对网站进行某种操作的漏洞。用户登陆网站A,输入自身的用户名和密码等信息,然后再A站点击任意链接跳转到不信任的B网站,然后B网站将获取用户的登陆信息,然后攻击者利用获取用户的登陆信息去登陆网站A,网站A将认为是用户的合法登陆,然后进行一些违法操作

    应用场景:

    一般多见于盗取用户的登陆信息进行转账以及修改个人资料等操作

    解决方法:

    (1)客户端的请求都换成POST方式

    (2)比较常用的是token校验;即在发送请求的时候,在http请求头中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,服务器端会去校验这个浏览器中的token与cookie中存的token是否相等,如果相等则认为是合法的,这个token是在用户登陆后,存储在session或者cookie中。

    三,SQL注入

    指的是攻击者将SQL命令插入到Web表单提交,并且服务端没有经过校验,拼接sql语句进行执行,造成数据库的数据泄漏。

    应用场景:

    黑客获取数据库的控制权

    解决方法

    (1)增加白名单和黑名单验证。白名单验证一般指检验用户输入是否符合预期的类型,长度或者其他格式标准等。黑名单验证一般指的是,在用户的输入中如果包含明显恶意的内容,则拒绝该用户请求

    (2)数据转义。设置php.ini选项magic_quotes_gpc=on,它会将提交的变量中所有的’(单引号),”(双引号),(反斜杠),空白字符等都在前面自动加上。或者采用mysql_real_escape()函数或addslashes()函数进行输入参数的转义。

  • 相关阅读:
    vscode调试pomelo和pomelo使用vscode调试
    linux修改单个进程的系统时间
    python之路目录
    python之前端
    python之ORM操作
    python之redis和memcache操作
    python之消息队列
    python之协程与IO操作
    python之进程与线程
    python之网络编程
  • 原文地址:https://www.cnblogs.com/cn-andy/p/9400909.html
Copyright © 2011-2022 走看看