当前位置: 首页 > news >正文

有哪里可以做兼职翻译的网站茶庄网站模板

有哪里可以做兼职翻译的网站,茶庄网站模板,杭州建设信用平台,做微商有哪些网站可以免费宣传目录 一、csrf跨站请求伪造详解 二、csrf跨域请求伪造 【1】正常服务端 【2】钓鱼服务端 三、csrf校验 【介绍】 form表单中进行csrf校验#xff1a; 【1】form表单如何校验 【2】ajax如何校验 四、csrf相关装饰器 【1】csrf_protect装饰器#xff1a; 【…目录 一、csrf跨站请求伪造详解         二、csrf跨域请求伪造 【1】正常服务端 【2】钓鱼服务端 三、csrf校验 【介绍】 form表单中进行csrf校验 【1】form表单如何校验 【2】ajax如何校验 四、csrf相关装饰器 【1】csrf_protect装饰器 【2】csrf_exempt装饰器 【3】FBV中使用上述装饰器 【4】CBV中使用上述装饰器 (1)  csrf_protect (2)  csrf_exempt方法 一、csrf跨站请求伪造详解         CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的网络攻击方式。攻击者通过诱导受害者访问恶意网站或点击恶意链接 将恶意请求发送到目标网站上利用受害者在目标网站中已登录的身份来执行某些操作从而达到攻击的目的。 举个例子 假设受害者在一家网银网站上登录账户然后继续浏览其他网页。同时攻击者通过电子邮件等方式向受害者发送了一封包含恶意链接的邮件。当受害者点击该链接时潜在的威胁就会变得非常现实。该链接指向一个由攻击者操纵的网站该网站上的恶意代码会自动向网银网站发送一个请求请求转账到攻击者的账户。由于受害者在网银网站中已经登录所以该请求会被认为是合法的这样攻击者就可以成功地进行转账操作。 要保护自己免受CSRF攻击网站开发者可以采取以下措施 使用CSRF令牌 在用户的请求中添加随机生成的令牌并将该令牌保存在用户会话中。每次提交请求时都会验证该令牌以确保请求是合法的。启用SameSite属性 将Cookie的SameSite属性设置为Strict或Lax以限制跨站请求。这可以在一定程度上缓解CSRF攻击。严格验证请求来源 服务器端可以验证请求的来源是否为预期的网站域名例如检查HTTP Referer头部。使用验证码 在敏感操作(如转账、更改密码等)上使用验证码增加用户身份验证的防护。 二、csrf跨域请求伪造 钓鱼网站 搭建一个类似正规网站的页面用户点击网站链接给某个用户打钱打钱的操作确确实实提交给了中国银行的系统用户的钱也确实减少但是唯一不同的是账户打钱的账户不是用户想要打钱的目标账户变成了其他用户内部本质 在钓鱼网站的页面针对对方账户只给用户提供一个没有name属性的普通input框然后在内部隐藏一个已经写好带有name属性的input框如何避免上面的问题 csrf跨域请求伪造校验 网站在给用户返回一个具有提交数据功能的页面的时候会给这个页面加一个唯一标识当这个页面后端发送post请求的时候我们后端会先校验唯一标识 如果成功则正常执行如果唯一标识不符合则拒绝连接(403 forbidden) 【1】正常服务端 前端 h1这是正规的网站/h1form action methodpostp当前账户 : input typetext namestart_user/pp目标账户 : input typetext nameend_user/pp转账金额 : input typetext namemoney/pinput typesubmit /form 后端  def transform_normal(request):if request.method POST:user_start request.POST.get(start_user)user_end request.POST.get(end_user)money request.POST.get(money)return HttpResponse(f当前账户 : {user_start} 向目标用户 : {user_end} 转账了 : {money})return render(request, transform_normal.html) 【2】钓鱼服务端 前端 h1这是钓鱼的网站/h1form actionhttp://127.0.0.1:8000/transform_normal/ methodpostp当前账户 : input typetext namestart_user /pp目标账户 : input typetext/ppinput typetext nameend_user valueHopes styledisplay: none/pp转账金额 : input typetext namemoney/pinput typesubmit /form 后端 def transform_normal(request):if request.method POST:user_start request.POST.get(start_user)user_end request.POST.get(end_user)money request.POST.get(money)return HttpResponse(f当前账户 : {user_start} 向目标用户 : {user_end} 转账了 : {money})return render(request, transform_normal.html) 三、csrf校验 【介绍】 csrf校验是一种用于防止跨站请求伪造(Cross-Site Request Forgery)攻击的安全措施 form表单中进行csrf校验 添加CSRF Token字段 在form表单中添加一个隐藏字段用于存储CSRF Token的值。后端服务器在渲染表单时生成一个CSRF Token并将其存储在会话中或者以其他方式关联到当前用户。当用户提交表单时前端将CSRF Token的值包含在请求中。后端在验证表单数据时检查请求中的CSRF Token是否与存储的Token匹配如果不匹配则拒绝请求。 设置Cookie 后端服务器在渲染表单时在客户端设置一个包含随机生成的CSRF Token的Cookie。当用户提交表单时表单数据会被一同发送到服务器并自动包含该Cookie。后端在验证表单数据时检查请求中的CSRF Token是否与Cookie中的值匹配如果不匹配则拒绝请求。 双重Cookie校验 后端服务器在渲染表单时在Cookie中设置一个随机生成的CSRF Token并将其存储在会话中或以其他方式关联到当前用户。当用户提交表单时表单数据会被一同发送到服务器请求头或请求参数中携带一个包含CSRF Token的自定义字段。后端在验证表单数据时同时检查请求中的CSRF Token和Cookie中的值是否匹配如果不匹配则拒绝请求。 【1】form表单如何校验 在form表单上面加上csrf_token {% csrf_token %} form action methodpostpusername:input typetext nameusername/pptransfer_userinput typepassword namepassword/ppmoneyinput typetext namemoney/pinput typesubmit /form 在页面标签中会自动出现一个标签 input typehidden namecsrfmiddlewaretoken valuezQaNPZsy1tVmLdqC7GIDOOOfR7yT9YfO58lJ5yrjZfTw2edZTrVYUllOVMnkwXKe 【2】ajax如何校验 方式一 利用标签查找获取页面上的随机字符串键必须叫 csrfmiddlewaretoken button idb1ajax请求提交/buttonscript$(#b1).click(function () {$.ajax({url: ,type: post,// (1) 利用标签查找获取页面上的随机字符串data: {username: dream,csrfmiddlewaretoken:$([csrfmiddlewaretoken]).val()},success: function () {}})}) /script 方式二 利用模板语法进行快捷引入 button idb1ajax请求提交/buttonscript$(#b1).click(function () {$.ajax({url: ,type: post,// (2) 利用模板语法提供的快捷书写data: {username: dream, csrfmiddlewaretoken: {{ csrf_token }}},success: function () {}})}) /script 方式三 定义一个js文件并引入导入该配置文件之前需要先导入jQuery因为这个配置文件内的内容是基于jQuery来实现的 function getCookie(name) {var cookieValue null;if (document.cookie document.cookie ! ) {var cookies document.cookie.split(;);for (var i 0; i cookies.length; i) {var cookie jQuery.trim(cookies[i]);// Does this cookie string begin with the name we want?if (cookie.substring(0, name.length 1) (name )) {cookieValue decodeURIComponent(cookie.substring(name.length 1));break;}}}return cookieValue; } var csrftoken getCookie(csrftoken);function csrfSafeMethod(method) {// these HTTP methods do not require CSRF protectionreturn (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); }$.ajaxSetup({beforeSend: function (xhr, settings) {if (!csrfSafeMethod(settings.type) !this.crossDomain) {xhr.setRequestHeader(X-CSRFToken, csrftoken);}} }); button idb1ajax请求提交/buttonscript$(#b1).click(function () {$.ajax({url: ,type: post,// (3) 定义外部js文件并引入到本地data: {username: dream},success: function () {}})}) /script 四、csrf相关装饰器 网站整体部分校验csrf部分不校验csrf网站整体全部校验csrf部分不校验csrf 【1】csrf_protect装饰器 csrf_protect装饰器用于需要进行CSRF保护的视图函数或类视图。当一个视图被csrf_protect装饰器修饰时Django会对该视图接收到的所有POST、PUT、DELETE等非安全HTTP方法的请求进行CSRF校验。如果请求中没有有效的CSRF令牌或令牌校验失败Django将返回403 Forbidden响应。 【2】csrf_exempt装饰器 csrf_exempt装饰器用于不需要进行CSRF保护的视图函数或类视图。当一个视图被csrf_exempt装饰器修饰时Django将不会对该视图接收到的任何请求进行CSRF校验。这个装饰器主要用于一些特殊情况比如与第三方系统进行集成、开放API接口等。 【3】FBV中使用上述装饰器 from django.views.decorators.csrf import csrf_protect, csrf_exemptcsrf_protect 需要校验 csrf_exempt 忽视校验当我们没有注释掉csrf校验中间件的时候可以在函数头上加上 csrf_exempt 忽视校验 当我们注释掉csrf校验中间件的时候可以在函数头上加上 csrf_protect 强制启动校验 【4】CBV中使用上述装饰器 from django.views.decorators.csrf import csrf_protect, csrf_exemptcsrf_protect 需要校验针对 csrf_protect 符合之前的装饰器的三种用法 csrf_exempt 忽视校验针对 csrf_exempt 只能给 dispatch 方法加才有效(1)  csrf_protect (1) 方式一 给指定方法加method_decorator from django.views import View from django.views.decorators.csrf import csrf_protect, csrf_exempt from django.utils.decorators import method_decoratorclass MyCsrf(View):def get(self, request):return HttpResponse(get)method_decorator(csrf_protect)def post(self, request):return HttpResponse(post) (2) 方式二 给类加然后指明方法 method_decorator from django.views import View from django.views.decorators.csrf import csrf_protect, csrf_exempt from django.utils.decorators import method_decoratormethod_decorator(csrf_protect) class MyCsrf(View):def get(self, request):return HttpResponse(get)def post(self, request):return HttpResponse(post) (3) 方式三 重写 dispatch 方法 from django.views import View from django.views.decorators.csrf import csrf_protect, csrf_exempt from django.utils.decorators import method_decoratorclass MyCsrf(View):method_decorator(csrf_protect)def dispatch(self, request, *args, **kwargs):return super(MyCsrf, self).dispatch(request, *args, **kwargs)def get(self, request):return HttpResponse(get)def post(self, request):return HttpResponse(post) (2)  csrf_exempt方法 只有重写 dispatch方法 有效 from django.views import View from django.views.decorators.csrf import csrf_protect, csrf_exempt from django.utils.decorators import method_decoratorclass MyCsrf(View):method_decorator(csrf_exempt)def dispatch(self, request, *args, **kwargs):return super(MyCsrf, self).dispatch(request, *args, **kwargs)def get(self, request):return HttpResponse(get)def post(self, request):return HttpResponse(post)
http://www.pierceye.com/news/622406/

相关文章:

  • 海阳市城建设局网站深圳高端设计公司名单
  • 高端网站制作系统网站开发的背景和意义
  • 假电影网站做注册长春seo代理计费
  • 网站代运营公司怎么做vip电影网站
  • 南京网站南京网站设计制作公司提高工作效率
  • 大连网站制作最好的公司萍乡商城网站建设
  • 做网站有2个前提条件_一个是网站班级优化大师app下载学生版
  • 自己做网站广告法wordpress自带评论表情
  • 苏州市城乡和建设局网站首页在线crm系统价格
  • php企业门户网站陕西高速公路建设网站
  • 网站商城系统建设方案h5页面制作网站易企秀
  • 绍兴网站建设方案报价seo外贸网站
  • 物流网站建设重要性建筑公司网址大全
  • 腾讯云注册域名后怎么做网站郑州网站建设大华伟业
  • 哪个小说网站可以做封面中国软件园排名前十
  • 门户网站建设预算表十大软件免费下载安装手机版
  • 河南省安阳市建设银行网站wordpress会员卡
  • 旅游类网站怎么做网站前端设计
  • 涉县网站设计商城网站建设推荐
  • 网站注册了域名然后怎么做网站运维是做什么的
  • 深圳学校网站建设哪家好企业宣传网
  • 静态网站如何添加关键词xp花生壳做网站
  • 南宁霸屏网站开发国际数据公司idc
  • 百色建设网站广西建设监理协会网站
  • 天河营销型网站建设惠东网站设计
  • 网站建设用什么科目qq腾讯官网登录入口
  • 做网站硬件手表网站哪个最好知乎
  • 网站制作教程及流程网站优化常见的优化技术
  • 漯河网站建设-千弘网络品划网络做网站
  • 专业广州做网站公司简历网站免费