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

企业网站seo方案带财运的公司名字

企业网站seo方案,带财运的公司名字,网络营销教材电子版,app定制版今日回顾 session 中间件 auth session Cookie虽然在一定程度上解决了“保持状态”的需求#xff0c;但是由于Cookie本身最大支持4096字节#xff0c;以及Cookie本身保存在客户端#xff0c;可能被拦截或窃取#xff0c;因此就需要有一种新的东西#xff0c;它能支持更…今日回顾 session 中间件 auth session Cookie虽然在一定程度上解决了“保持状态”的需求但是由于Cookie本身最大支持4096字节以及Cookie本身保存在客户端可能被拦截或窃取因此就需要有一种新的东西它能支持更多的字节并且他保存在服务器有较高的安全性。这就是Session。 问题来了基于HTTP协议的无状态特征服务器根本就不知道访问者是“谁”。那么上述的Cookie就起到桥接的作用。 我们可以给每个客户端的Cookie分配一个唯一的id这样用户在访问时通过Cookie服务器就知道来的人是“谁”。然后我们再根据不同的Cookie的id在服务器上保存一段时间的私密资料如“账号密码”等等。 总结而言Cookie弥补了HTTP无状态的不足让服务器知道来的人是“谁”但是Cookie以文本的形式保存在本地自身安全性较差所以我们就通过Cookie识别不同的用户对应的在Session里保存私密的信息以及超过4096字节的文本。 另外上述所说的Cookie和Session其实是共通性的东西不限于语言和框架。 Django中Session相关方法 # 获取、设置、删除Session中数据 request.session[k1] request.session.get(k1,None) request.session[k1] 123 request.session.setdefault(k1,123) # 存在则不设置 del request.session[k1]# 所有 键、值、键值对 request.session.keys() request.session.values() request.session.items() request.session.iterkeys() request.session.itervalues() request.session.iteritems()# 会话session的key request.session.session_key# 将所有Session失效日期小于当前日期的数据删除 request.session.clear_expired()# 检查会话session的key在数据库中是否存在 request.session.exists(session_key)# 删除当前会话的所有Session数据(只删数据库) request.session.delete()# 删除当前的会话数据并删除会话的Cookie数据库和cookie都删。 request.session.flush() 这用于确保前面的会话数据不可以再次被用户的浏览器访问例如django.contrib.auth.logout() 函数中就会调用它。# 设置会话Session和Cookie的超时时间 request.session.set_expiry(value)* 如果value是个整数session会在些秒数后失效。* 如果value是个datatime或timedeltasession就会在这个时间后失效。* 如果value是0,用户关闭浏览器session就会失效。* 如果value是None,session会依赖全局session失效策略。Django中使用session时做的事 # 生成随机字符串 # 写浏览器cookie - session_id: 随机字符串 # 写到服务端session     # {     #     随机字符串: {user:lqz}     # } Django中的Session配置 1. 数据库Session SESSION_ENGINE django.contrib.sessions.backends.db # 引擎默认2. 缓存Session SESSION_ENGINE django.contrib.sessions.backends.cache # 引擎 SESSION_CACHE_ALIAS default # 使用的缓存别名默认内存缓存也可以是memcache此处别名依赖缓存的设置3. 文件Session SESSION_ENGINE django.contrib.sessions.backends.file # 引擎 SESSION_FILE_PATH None # 缓存文件路径如果为None则使用tempfile模块获取一个临时地址tempfile.gettempdir() 4. 缓存数据库 SESSION_ENGINE django.contrib.sessions.backends.cached_db # 引擎5. 加密Cookie Session SESSION_ENGINE django.contrib.sessions.backends.signed_cookies # 引擎其他公用设置项 SESSION_COOKIE_NAME sessionid # Session的cookie保存在浏览器上时的key即sessionid随机字符串默认 SESSION_COOKIE_PATH / # Session的cookie保存的路径默认 SESSION_COOKIE_DOMAIN None # Session的cookie保存的域名默认 SESSION_COOKIE_SECURE False # 是否Https传输cookie默认 SESSION_COOKIE_HTTPONLY True # 是否Session的cookie只支持http传输默认 SESSION_COOKIE_AGE 1209600 # Session的cookie失效日期2周默认 SESSION_EXPIRE_AT_BROWSER_CLOSE False # 是否关闭浏览器使得Session过期默认 SESSION_SAVE_EVERY_REQUEST False # 是否每次请求都保存Session默认修改之后才保存默认中间件 一、什么是中间件 中间件顾名思义是介于request与response处理之间的一道处理过程相对比较轻量级并且在全局上改变django的输入与输出。因为改变的是全局所以需要谨慎实用用不好会影响到性能 作用     1 全局的请求拦截---》如果它没有登录---》就不允许访问     2 拦截所有请求获取请求的ip地址     3 记录所有用户的访问日志     4 统一在响应头中加数据  Django中间件的定义 Middleware is a framework of hooks into Django’s request/response processing.  It’s a light, low-level “plugin” system for globally altering Django’s input or output. 二、中间件有什么用 如果你想修改请求例如被传送到view中的HttpRequest对象。 或者你想修改view返回的HttpResponse对象这些都可以通过中间件来实现。 可能你还想在view执行之前做一些操作这种情况就可以用 middleware来实现。 Django默认的中间件在django项目的settings模块中有一个 MIDDLEWARE_CLASSES 变量其中每一个元素就是一个中间件如下图 MIDDLEWARE [django.middleware.security.SecurityMiddleware,django.contrib.sessions.middleware.SessionMiddleware, # session相关的中间件django.middleware.common.CommonMiddleware, # 公共中间件---》访问不带 / 路径如果有 带 / 的路径他会让你重定向到这个地址django.middleware.csrf.CsrfViewMiddleware, # csrf认证 django.contrib.auth.middleware.AuthenticationMiddleware, # 认证request.user---这个中间件做的django.contrib.messages.middleware.MessageMiddleware,django.middleware.clickjacking.XFrameOptionsMiddleware, ]每一个中间件都有一个具体的功能 三、自定义中间件 代码上就是一个类类中有几个方法 process_request(self,request) # 请求来了就会走 process_response(self, request, response) # 请求走了就会走 process_view(self, request, callback, callback_args, callback_kwargs) #视图函数执行之前调用 process_template_response(self,request,response) # 渲染模板之前会走 process_exception(self, request, exception) # 视图函数中出现异常了才执行  process_request和process_response 当用户发起请求的时候会依次经过所有的的中间件这个时候的请求时process_request,最后到达views的函数中views函数处理后在依次穿过中间件这个时候是process_response,最后返回给请求者。 上述截图中的中间件都是django中的我们也可以自己定义一个中间件我们可以自己写一个类但是必须继承MiddlewareMixin 第一步导入  from django.utils.deprecation import MiddlewareMixin第二步自定义中间件 from django.utils.deprecation import MiddlewareMixin from django.shortcuts import HttpResponseclass Md1(MiddlewareMixin):def process_request(self,request):print(Md1请求)def process_response(self,request,response):print(Md1返回)return responseclass Md2(MiddlewareMixin):def process_request(self,request):print(Md2请求)#return HttpResponse(Md2中断)def process_response(self,request,response):print(Md2返回)return response第三步在view中定义一个视图函数index def index(request):print(view函数...)return HttpResponse(OK)第四步在settings.py的MIDDLEWARE里注册自己定义的中间件 结果 Md1请求 Md2请求 view函数... Md2返回 Md1返回 注意如果当请求到达请求2的时候直接不符合条件返回即return HttpResponse(“Md2中断”)程序将把请求直接发给中间件2返回然后依次返回到请求者结果如下 返回Md2中断的页面后台打印如下 Md1请求 Md2请求 Md2返回 Md1返回 流程图如下 由此总结一下 中间件的process_request方法是在执行视图函数之前执行的。当配置多个中间件时会按照MIDDLEWARE中的注册顺序也就是列表的索引值从前到后依次执行的。不同中间件之间传递的request都是同一个对象 多个中间件中的process_response方法是按照MIDDLEWARE中的注册顺序倒序执行的也就是说第一个中间件的process_request方法首先执行而它的process_response方法最后执行最后一个中间件的process_request方法最后一个执行它的process_response方法是最先执行。 csrf认证 CSRFCross-site request forgery跨站请求伪造也被称为“One Click Attack”或者Session Riding通常缩写为CSRF或者XSRF是一种对网站的恶意利用。尽管听起来像跨站脚本XSS但它与XSS非常不同XSS利用站点内的信任用户而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比CSRF攻击往往不大流行因此对其进行防范的资源也相当稀少和难以防范所以被认为比XSS更具危险性 可以这样来理解        攻击者盗用了你的身份以你的名义发送恶意请求对服务器来说这个请求是完全合法的但是却完成了攻击者所期望的一个操作比如以你的名义发送邮件、发消息盗取你的账号添加系统管理员甚至于购买商品、虚拟货币转账等。 如下其中Web A为存在CSRF漏洞的网站Web B为攻击者构建的恶意网站User C为Web A网站的合法用户 攻击原理 如何防范 django解决了这个问题---》只要发送post请求必须携带一个csrf_token 随机字符串---后端给的 这个随机字符串可以带的位置 1 请求体中urlencodedform-data{csrfmiddlewaretokenasdfasdf}2 放在请求头中X-CSRFToken:asdfasdfasd3 ajax提交数据默认是urlencoded放在请求体中没有任何问题$.ajax({method: post,data: {username, password, csrfmiddlewaretoken},success: function (res) {console.log(res)}})4 ajax提交使用json格式---》就不能放在请求体中只能放在请求头中$.ajax({method: post,headers:{X-CSRFToken:csrfmiddlewaretoken},contentType: application/json,data: JSON.stringify({username, password}),success: function (res) {console.log(res)}}) 在form表单中应用 form action methodpost{% csrf_token %}p用户名input typetext namename/pp密码input typetext namepassword/ppinput typesubmit/p /form在Ajax中应用 放在data里 !DOCTYPE html html langen headmeta charsetUTF-8script src/static/jquery-3.3.1.js/scripttitleTitle/title /head body form action methodpost{% csrf_token %}p用户名input typetext namename/pp密码input typetext namepassword idpwd/ppinput typesubmit/p /form button classbtn点我/button /body script$(.btn).click(function () {$.ajax({url: ,type: post,data: {name: $([namename]).val(),password: $(#pwd).val(),csrfmiddlewaretoken: $([namecsrfmiddlewaretoken]).val()},success: function (data) {console.log(data)}})}) /script /html放在cookie里 获取cookiedocument.cookie 是一个字符串可以自己用js切割也可以用jquery的插件 获取cookie$.cookie(‘csrftoken’) 设置cookie$.cookie(‘key’,’value’) !DOCTYPE html html langen headmeta charsetUTF-8script src/static/jquery-3.3.1.js/scriptscript src/static/jquery.cookie.js/scripttitleTitle/title /head body form action methodpost{% csrf_token %}p用户名input typetext namename/pp密码input typetext namepassword idpwd/ppinput typesubmit/p /form button classbtn点我/button /body script$(.btn).click(function () {var token$.cookie(csrftoken)//var token{{ csrf_token }}$.ajax({url: ,headers:{X-CSRFToken:token},type: post,data: {name: $([namename]).val(),password: $(#pwd).val(),},success: function (data) {console.log(data)}})}) /script /html
http://wiki.neutronadmin.com/news/160359/

相关文章:

  • 3个典型网站建设公司有口碑的南通网站建设
  • 网站建设好还需投资吗手机做推广比较好的网站有哪些
  • 国微 网站建设专门做家具的网站
  • 桥头镇网站仿做山东平台网站建设多少钱
  • 免费做微信链接的网站网站建设编辑工作总结
  • 做的好的微商城网站网站建网站建站
  • 网站开发到上线的流程网站关键字如何做
  • 郑州经纬网络做网站吗html怎么做网站版块
  • 网站开发 合同范本网站建设算无形资产吗
  • 阿克苏网站开发成都营销推广公司
  • 定制网站和模板建站哪个好用线上推广的渠道和方法
  • 深圳住房宝安和建设局网站开发门户网站
  • 搜狗站长推送工具百度是国企还是央企
  • 南昌有做网站的吗微信小程序可以做视频网站吗
  • 为什么要做网站推广注册公司地址可以用家庭地址
  • 传统网站和手机网站的区别是什么涿州市查建设局网站
  • 小企业网站建设价格如何推广电商平台
  • 霸县网站建设企业自助建站的网站
  • 免费建网站wordpress 免费中文模板
  • 怎么 从头开始建设一个网站推广qq群的网站
  • 网络规划设计师视频网盘自动优化网站软件没有了
  • 了解网络营销相应的网站网站开发 策划是干嘛的
  • 江苏推广网站建设业务房地产互联网推广
  • 同德县公司网站建设wordpress中文用户名注册
  • 网站内容建设总结服装设计学校排名
  • 临猗网站建设简单的网站怎么做
  • dw不会写代码能建立网站吗建筑网站设计
  • 建站快车官网最新房屋装修效果图大全
  • 公众号江苏建设信息网站so域名的网站有哪些
  • 图案设计网站有哪些响亮大气的公司名字