资讯专栏INFORMATION COLUMN

Web安全防范

hightopo / 1862人阅读

摘要:防范措施转义验证用户输入攻击指跨域请求伪造,这是一种近年来才逐渐被大众了解的攻击方式。防范措施正确使用方法令牌效验其中令牌是比较常用的方法,具体做法是在表单提交中添加一些伪随机数,即令牌,这里我们就不详细展开。

简单总结一下日常web开发中会出现的一些安全问题,以Flask框架为例

注入攻击(Injection)

注入攻击主要包括系统命令注入,SQL注入,NoSQL注入,和ORM注入等,这里我们简单介绍一下SQL注入

攻击原理

在编写SQL语句时,如果直接将用户传入的输入作为参数使用字符串拼接的方式插入到SQL查询中的话,攻击者则可以利用SQL语句篡改,窃取数据库的信息。

攻击实例
@app.route("/student")
def get_table():
    password = request.args.get("password")
    cur = db.execute("SELECT * FROM students WHERE password="%s;"
                        % password)
    results = cur.fetchall()
    return results

如果攻击者输入的值为"or 1=1--",这意味着会返回students表中的所有数据;或者输入"; drop table users; --",会删除students表中的所有数据。

主要防范方法

使用ORM

验证输入类型

转义特殊字符

XSS攻击

XSS(Cross-Site Scripting)即跨站脚本攻击,为了避免与CSS层叠样式表产生命名冲突,用X来表示Cross(交叉)

攻击原理

XSS其实是注入攻击的一种,通过将代码注入被攻击者的网站中,用户一旦访问便会执行被注入的恶意脚本。其中,XSS攻击主要分为反射型XSS攻击和存储型XSS攻击两种。

攻击示例
反射型XSS攻击

反射型XSS又称为非持久型XSS,当某个站点存在XSS漏洞时,可以通过URL注入恶意脚本,当用户访问这个URL时,就会执行攻击脚本。

@app.route("hello")
def hello():
    name = request.args.get("name")
    response = "

Hello, %s

" % name return response

如果用户输入一段javascript代码,如访问http://example.com/hello/,客户端介绍到响应后,浏览器就会执行这段代码,当然这个示例代码不会构成任何威胁,但这意味着可以执行任意的js代码,鬼知道攻击者会做些什么!

存储型XSS攻击

存储型XSS也被称为持久型XSS,它和反射型XSS的行为类似,不过会把植入的恶意代码存储到数据库中,如在留言区写入一段重定向代码,这会导致用户在访问留言区页面时被重定向到一些恶意站点。

防范措施

HTML转义

验证用户输入

CSRF攻击

CSRF(Cross Site Request Forgery)指跨域请求伪造,这是一种近年来才逐渐被大众了解的攻击方式。

攻击原理

攻击者利用用户在浏览器中保存的认证信息,向对应的站点发送伪造请求。如用户登录了A网站,认证信息保存在cookie中,当用户访问恶意网站B时,攻击者通过B网站发送一个伪造的请求提交到A网站服务器上,这会让A网站误以为请求来自于自己的网站,从而可以让攻击者成功篡改某些信息。

攻击示例

假设服务器端删除用户账户的视图操作为

@app.route("/account/delete")
def delete_account():
    if not current_user.authenticated:
        abort(401)
    current_user.delete()
    return "deleted!"

当用户登录后,只要访问https://example.com/account/delete就会删除账户,那么在攻击者的网站上,只要创建一个显示图片的img,其中的src的属性加入删除账户的URL,当用户访问B网站时,浏览器解析网页会自动向该链接发送请求,此时你的登录信息就保存在浏览器的cookie中,因此,仅仅是访问B网站就会导致删除账户。

防范措施

正确使用HTTP方法

CSRF令牌效验

其中CSRF令牌是比较常用的方法,具体做法是在表单提交中添加一些伪随机数,即CSRF令牌(token),这里我们就不详细展开。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43495.html

相关文章

  • 离大厂近一点《阿里巴巴集团Web安全测试规范》独家版

    摘要:今天,我们就离大厂更近一点,共同学习阿里这份阿里巴巴集团安全测试规范阿里巴巴集团安全测试规范阿里巴巴集团安全测试规范背景简介为了规避安全风险规范代码的安全开发,以及如何系统的进行安全性测试,目前缺少相应的理论和方法支撑。 很多人都知道,在学校学的技术,初创公司的技术,外包公司的技术,自研公司...

    wudengzan 评论0 收藏0
  • #WEB安全基础 : HTML/CSS | 文章索引

    摘要:黑体本系列讲解安全所需要的和黑体安全基础我的第一个网页黑体安全基础初识黑体安全基础初识标签黑体安全基础文件夹管理网站黑体安全基础模块化黑体安全基础嵌套列表黑体安全基础标签拓展和属性的使用黑体安全基础嵌套本系列讲解WEB安全所需要的HTML和CSS #WEB安全基础 : HTML/CSS | 0x0 我的第一个网页 #WEB安全基础 : HTML/CSS | 0x1初识CSS #WEB安全基...

    EscapedDog 评论0 收藏0
  • UCloud 开启负载均衡+WAF一键联动,云原生能力赋能Web防护创新模式

    摘要:为使用七层负载均衡的用户,提供安全高效的应用防护能力。基于负载均衡集群的运维能力,可快速进行扩容容灾迁移的部署。伴随着互联网+时代的到来,Web系统作为企业IT业务的基本负载平台,承载着各种不同种类的信息业务。但近年来针对Web应用的攻击事件频发,也让Web应用的安全防御面临着诸多挑战。国家互联网应急中心报告就曾显示,仅2020上半年国家信息安全漏洞共享平台(CNVD)收录通用型安全漏洞11...

    Tecode 评论0 收藏0
  • 信息安全入门指南

    摘要:以下所列出的链接均为在线文档,有志于信息安全的爱好者可由此作为入门指南。 以下所列出的链接均为在线文档,有志于信息安全的爱好者可由此作为入门指南。 常规知识 Sun认证-Solaris 9&10安全管理员学习指南 PicoCTF资料 应用软件安全 OWASP安全编码规范 漏洞挖掘 Windows ISV软件安全防御 移动安全 OWASP十大移动手机安全风险 网...

    jay_tian 评论0 收藏0
  • clojure的web安全比你想象的还要差

    摘要:的安全比你想象的还要差大会结束了,发表了题为的演说。宣称,根据可供选择的类库来倒腾你自己的栈,这种思想方法导致了系统级的安全问题。对于而言,安全的会话管理只有非常少量的被证明过的最佳实践。安全头在应用程序,没有集中的类库来居中管理安全头。 Clojure的web安全比你想象的还要差 ClojureWest大会结束了,Aaron Bedra发表了题为 Clojure.web/with-...

    opengps 评论0 收藏0

发表评论

0条评论

hightopo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<