第九章 Django框架——csrf请求伪造和csrf_token使用

 

一、csrf请求伪造

二、csrf_token使用

三、简单的csrf_token应用

四、Ajax使用csrf_token

 

一、csrf请求伪造

什么是csrf(what):

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

 

简单解释:

钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的?)
①钓鱼网站的页面是由 钓鱼网站的服务端给你返回的
②正经网站的网页是由 正经网站的服务端给你返回的

 

从django中看csrf:

①前文中提到每次创建django后,都要进入settings.py文件内注释掉这行内容

第九章 Django框架——csrf请求伪造和csrf_token使用

②那我们如果不注释掉这行内容,提交数据的话会有什么效果

第九章 Django框架——csrf请求伪造和csrf_token使用

原因:django做了限制,在没有设置cookie的情况下,会拒绝访问

第九章 Django框架——csrf请求伪造和csrf_token使用

 

模拟钓鱼网站攻击

正经网站

①文件是直接在别的项目里新建写的,所以会有多余代码,忽略即可,直接找transfer

②网址:127.0.0.1,端口8000

③注释掉上文提到的settings.py里面的csrf

from django.conf.urls import url
from django.contrib import admin
from app01 import views
from app02 import views as v2

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^ajax_test/', views.ajax_test),
    url(r'^ajax_add/', views.ajax_add),
    url(r'^test/', views.test),
    url(r'^ajax_post/', views.ajax_post),
    url(r'^ajax_add3/', views.ajax_add3),
    url(r'^login/',v2.login),
    url(r'^transfer/',v2.transfer)
]
urls.py

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-15
  • 2022-01-23
  • 2021-06-06
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-10
  • 2021-09-30
  • 2021-06-26
  • 2021-05-23
  • 2021-09-05
  • 2021-08-07
相关资源
相似解决方案