-
判断用户是否登录
<!-- 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