摘要:防范措施转义验证用户输入攻击指跨域请求伪造,这是一种近年来才逐渐被大众了解的攻击方式。防范措施正确使用方法令牌效验其中令牌是比较常用的方法,具体做法是在表单提交中添加一些伪随机数,即令牌,这里我们就不详细展开。
简单总结一下日常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漏洞时,可以通过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的行为类似,不过会把植入的恶意代码存储到数据库中,如在留言区写入一段重定向代码,这会导致用户在访问留言区页面时被重定向到一些恶意站点。
防范措施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安全所需要的HTML和CSS #WEB安全基础 : HTML/CSS | 0x0 我的第一个网页 #WEB安全基础 : HTML/CSS | 0x1初识CSS #WEB安全基...
摘要:为使用七层负载均衡的用户,提供安全高效的应用防护能力。基于负载均衡集群的运维能力,可快速进行扩容容灾迁移的部署。伴随着互联网+时代的到来,Web系统作为企业IT业务的基本负载平台,承载着各种不同种类的信息业务。但近年来针对Web应用的攻击事件频发,也让Web应用的安全防御面临着诸多挑战。国家互联网应急中心报告就曾显示,仅2020上半年国家信息安全漏洞共享平台(CNVD)收录通用型安全漏洞11...
摘要:的安全比你想象的还要差大会结束了,发表了题为的演说。宣称,根据可供选择的类库来倒腾你自己的栈,这种思想方法导致了系统级的安全问题。对于而言,安全的会话管理只有非常少量的被证明过的最佳实践。安全头在应用程序,没有集中的类库来居中管理安全头。 Clojure的web安全比你想象的还要差 ClojureWest大会结束了,Aaron Bedra发表了题为 Clojure.web/with-...
阅读 973·2021-11-15 18:06
阅读 2325·2021-10-08 10:04
阅读 2573·2019-08-28 18:03
阅读 867·2019-08-26 13:42
阅读 1896·2019-08-26 11:31
阅读 2398·2019-08-23 17:13
阅读 894·2019-08-23 16:45
阅读 2031·2019-08-23 14:11