使用Python Django开发web应用16 安全

版本声明:转载请注明出处。未经允许,禁止商业用途。

使用Python Django开发web应用 安全
----刘一凡


XSS
Cross Site Script,跨站脚本攻击。为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故缩写为XSS。
一个恶意的使用者将代码注入网页,如果服务器不对用户提供的数据进行充分检查,当其它用户查看网页内容时,他的Web浏览器中会执行这个脚本,从而受到攻击。它影响的不是服务器,而是其他用户。
例如恶意使用者在blog内容中输入<script>脚本内容</script>,就向网页中注入了javascript脚本。
可以轻易实现下面的效果:通过窃取cookie实现会话劫持;将所有键入的文本发送给攻击者;修改网页所显示的内容;将页面重定向到恶意网站。

django会自动对特殊字符进行转义


CSRF
Cross Site Request Forgery, 跨站点请求伪造。
举例来讲,你登录到了网站A,恶意的网站B上有一个指向你已经登录的网站A的链接,当你点击恶意网站B上的那个链接时,浏览器就会向你的网站A发送一个请求,网站A以为这个请求是用户构造的,其实上,这个请求是那个恶意网站伪造的。
防范方法:尽量使用POST,限制GET。因为GET只需要一个连接就可以伪造。在form中添加token并验证。这个Token的值必须是随机的,不可预测的。由于Token的存在,攻击者无法再构造一个带有合法Token的请求实施CSRF攻击。
django支持:template的form中加入{% csrf_token %},收到表单时验证token


SQL注入
通过用户输入注入SQL语句。对服务器进行攻击
防范措施,对特殊字符进行转义,比如’(单引号)
django会对不安全的SQL参数自动转义

 

clickjacking
点击劫持:是一种视觉欺骗手段,就是在iframe中嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置。
X-Frame-options:用于控制网站内容在其它Web网站的Frame内的显示问题。主要目的是防止点击劫持(clickjacking)攻击。有两种值。Deny:拒绝。SAMEORIGIN:仅允许同源域名下的页面。
防范措施:django使用X-Frame-Options middleware支持了X-Frame-Options


HTTPs
使用SSL实现的加密的HTTP。
可以防止访问非法的服务器,网络中传输的报文会被加密,防止信息泄露。
>pip install pyOpenSSL
>pip install django-extensions
>pip install django-werkzeug-debugger-runserver
INSTALLED_APPS = []中添加
    'django_extensions',
    'werkzeug_debugger_runserver',
>python manage.py runserver_plus --cert server.crt
实际部署时需要向CA申请证书

谢谢大家

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值