Django项目部署 - 服务器安全
来源:互联网 发布:笔记本无线找不到网络 编辑:程序博客网 时间:2024/06/05 06:47
*跨站脚本安全保护 Cross site scripting protection
跨站脚本攻击(XSS)通常发生于站点存储和使用不安全的内容,例如数据库里存储的用户的内容是用户的脚本,这些脚本读取后未经处理便执行导致了网站的不安全。例如
<style class={{var}}>...</style>
当var是来自用户类似于这样的内容:
‘class1 onmouseover=javascript:func()’
这样就可能导致浏览器执行不安全的脚本。为了避免这类问题,django模板会自动过滤特殊字符,类似 ‘<’, '>'之类的字符会被过滤。
如果你确定安全不需要过滤,可以使用safe过滤器,并在合适的地方用双引号。
<style class="{{var|safe}}">...</style>
*跨站请求伪造保护 CSRF(cross site request forgery)protection
未知用户伪装成登陆用户去提交表单
A站的javascript 在用户打开B站后, 提交了B站的一个表单到B站(因为这时用户已经登陆了B站,所以B站以为这是用户提交的),但这不是用户的行为
django有CSRF保护模块,必须在MIDDLEWARE_CLASSES里加上:
'django.middleware.csrf.CsrfViewMiddleware'
在form里必须加上{% csrf_token%}才能通过服务器验证,
<form action="" method = "post"> {% csrf_token%}
默认全站有效
如果只想保护特殊的view, 请单独在view函数前加上@csrf_protect
还有一个设置允许来自指定站点的POST请求
CSRF_COOKIE_DOMAIN = '.example.com'
如果view 不考虑CSRF, 可在view前加@csrf_exempt
*SQL注入攻击保护 SQL injection protection
SQL注入式在SQL里隐藏附带的脚本去数据库里执行的行为,django的QuerySet会跳过打本这类隐藏脚本
*点击劫持攻击保护 Clickjacking
如A站点把B站点的内容放在了一个frame里来伪装,当用户点击A的‘赞’按钮会自动调用js去点击B的‘确定购买’按钮
django防止攻击的方法是在中间件加上
‘django.middleware.clickjacking.XFrameOptionsMiddleware’
*开启SSL/HTTPS
根据需要开启 HTTPS设置,提高服务器安全性
SESSION_COOKIE_SECURE=True
CSRF_COOKIE_SECURE=True
SECURE_PROXY_SSL_HEADER=('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT=True
*在ALLOWED_HOSTS里指定哪些HOST是可以访问的
- Django项目部署 - 服务器安全
- Ubuntu服务器部署Django项目
- Django项目部署 - 多服务器分离
- django项目部署-python服务器搭建
- 向Apache服务器部署Django项目
- Ubuntu 服务器上Apache + WSGI 部署Django项目
- 使用WSGI在Apache服务器中部署Django项目实例
- 关于django项目部署在服务器上的二三事
- 在apache服务器上部署两个django项目总结
- 树莓派3b搭建web服务器(部署Django项目)
- 在自己的服务器上部署Django项目
- 部署Django项目到Apache服务器(上)
- 部署Django项目到Apache服务器(下)
- django nginx 服务器部署
- Apache部署Django项目
- Apache部署django项目
- Apache部署django项目
- IIS8部署Django项目
- 单链表实现冒泡排序
- 《鸟哥的Linux私房菜》第一章练习题
- hdu 5258 数长方形-2015年百度之星程序设计大赛 - 复赛
- bzoj1492【NOI2007】货币兑换Cash
- redis windows下的环境搭建
- Django项目部署 - 服务器安全
- 第九章课后题
- C#网络编程之--TCP协议(一)
- iOS - 扫描二维码
- Bash 下的快捷操作
- Code Hunt 题解 00-04 (Java)
- 1005. 继续(3n+1)猜想 (25)
- c++:template使用中的常见报错
- C#网络编程之---TCP协议的同步通信(二)