学习随笔:Django 补充及常见Web攻击 和 ueditor
-
判断用户是否登录
<!-- xxx.html --> {% if request.user.is_authenticated %}
-
填错表格返回上次信息
<!-- xxx.html --> {% if login_form.errors.username %}
-
登录用户访问类
# xxx.py from django.contrib.auth.decorators import login_required class LoginRequiredMixin(object): @classmethod def as_view(cls, **initkwargs): view = super(LoginRequiredMixin, cls).as_view(**initkwargs) return login_required(view)
-
JS刷新本页
location.reload()
-
同时修改多个对象
Objects.update(xx=xx)
-
当Django的配置
DEBUG = False
时,加载static
下文件的设置# settings.py中添加 ... STATIC_ROOT = 'static'
# urls.py中添加 from .settings import STATIC_ROOT from django.views.static import serve from django.conf.urls import url urlpatterns = [ ... url(r'^static/(?P<path>.*)$', serve, {'document_root': STATIC_ROOT}) , ]
-
403 404 500 页面配置
# urls.py handler404 = 'user.views.page_not_found' handler500 = 'user.views.page_error' handler403 = 'user.views.permission_denied'
def page_not_found(request): resp = render_to_response("404.html",{}) resp.status_code = 404 return resp def page_error(request): resp = render_to_response("500.html",{}) resp.status_code = 500 return resp def permission_denied(request): resp = render_to_response("403.html",{}) resp.status_code = 403 return resp
-
SQL攻击
sql注入的危害
- 非法读取、篡改、删除数据库中数据
- 盗取用户的各类敏感信息,获取利益
- 通过修改数据库来修改网页内容
- 注入木马等等
-
xss攻击
xss跨站脚本攻击(Cross Site Scripting)的危害
- 盗取各类用户账号,如用户网银账号、各类管理员账号
- 盗窃企业重要的具有商业价值的资料
- 非法转账
- 控制受害者机器向其他网站发起攻击、注入木马等
xss攻击的防护
- 首先代码里对用户的输入的地方和变量都需要仔细检查长度和对
< > ; '
等字符做过滤 - 避免直接在cookie中泄露用户隐私,通过使cookie和系统ip绑定来降低cookie泄露后的危险
- 尽量采用POST而非GET提交表单
-
csrf攻击
csrf跨站请求伪造(Cross-site request forgery)的危害
- 以你名义发送邮件
- 盗取你的账号
- 购买商品
- 虚拟货币转账
-
xadmin 集成富文本 ueditor