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

17一起做网站app平台网站建设需求

17一起做网站app,平台网站建设需求,模板网站和插件,wordpress前台自动登录目录 简介 题目 单选题 题解 A选项的Content-Security-Policy http-equiv属性 content属性 B选项的CSRF 使用CSRF Token 验证Referer和Origin头 C选项的HTTP Only D选项的防止SQL注入 输入验证和转义 简介 这个是一个长系列#xff0c;我会以题目为导向#xff…目录 简介 题目 单选题 题解 A选项的Content-Security-Policy http-equiv属性 content属性 B选项的CSRF 使用CSRF Token 验证Referer和Origin头 C选项的HTTP Only D选项的防止SQL注入 输入验证和转义 简介 这个是一个长系列我会以题目为导向通过题目来针对性的学习前端的方方面面每篇文章涉及到的题目并不多但是每道题我都会尽量细致面向初学者友好的去讲解喜欢的可以一直关注我会持续更新这个系列的文章。 题目 单选题 1.关于前端安全以下说法正确的是 A. XSS跨站脚本攻击可以通过设置HTTP响应头的Content-Security-Policy为none来防止。 B. CSRF跨站请求伪造攻击可以通过移除所有的cookie来防止。 C. HTTP Only属性可以防止通过JavaScript访问cookie从而减少XSS攻击的风险。 D. 输入验证和转义是防止SQL注入的无效方式。 题解 答案选C我们逐个解释我们尽量讲解的细致一些面向初学者友好一些而且我们尽量有代码示例就用代码来解释。 A选项的Content-Security-Policy 设置HTTP的响应头的Content-Security-Policy为none并不是防止XSS攻击的有效正确方式。相反Content-Security-Policy反而是可以有效防止XSS的攻击。XSS是一种网站应用程序的安全漏洞攻击是代码注入的一种。 ​ HTTP概括来讲就是万维网的数据通信的基础。而Content-Security-Policy以后我简称为CSPCSP是HTTP的一个响应头它不是对象属性或者方法而是一种服务器发送的指令。 ​ 我们在HTML文件中head标签下会有一个meta标签在这个标签下我们可以对于http-equiv设置一个配置性的命令即CSP它可以告诉浏览器如何处理一个网页的内容。 !DOCTYPE html html langen head meta http-equivContent-Security-Policy contentdefault-src self; img-src https://*; child-src none; meta charsetUTF-8 titleTitle/title /head body /body /html http-equiv属性 http-equiv属性的作用是模拟HTTP响应头部的效果这里我们设置为CSP就是它指令的一种而CSP的作用就是有效防止XSS的攻击 content属性 content属性用于定义与name属性和http-equiv属性相关的值它可以设置很多相关的命令这个例子就是一个典型的样式default-src self指令设置了所有类型资源的默认策略我们一般都是这样设置的这里的资源就是比如脚本、样式、图片和字体等等。img-src https://指令用于指定哪些来源的图片可以被加载我们设置为这个命令意味着我们可以在任何使用HTTPS协议的来源来去加载图片child-src none也是一个属性我们设置为none表示不允许从任何源加载这类内容这里的内容我们说的是要嵌入的内容比如iframe/embed/object这些元素 回到题目本身其实那么我们到底如何做到A选项说的如何防止XSS呢完整的代码是这样的但是概括来讲正确配置Content-Security-Policy如限制资源的加载和执行来源可以有效防止XSS攻击A说法说反了。 meta http-equivContent-Security-Policy contentdefault-src none; script-src self https://trustedscript.com;connect-src self;img-src self https://trustedimagehost.com;style-src self unsafe-inline;font-src self;object-src none;frame-ancestors none;base-uri self;B选项的CSRF 移除所有的cookie并不是防止CSRF攻击的有效方法Cross-Site Request Forgery全称为这个为跨站请求伪造简单来说是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作。 什么是cookie呢全称为HTTP cookie我们在浏览一些国外网站的时候可能会遇到这个选项是我们在浏览网站时网络服务器创建的并通过网页浏览器存放在用户计算机的小文本文件即cookie就是一些小文件。移除所有的cookie并不能防止CSRF攻击。要通过CSRF攻击的常见方式来阻止比如使用CSRF Token或者验证Referer和Origin头下面逐一介绍。 B选项说的移除所有的cookie这个操作本身和有效防止CSRF并没有直接关系CSRF攻击的是什么它攻击的是用户当前的登录状态cookie这些小文件更多的是比如购物车信息会话标识符跟踪和分析信息等。 使用CSRF Token !DOCTYPE html html langen headmeta charsetUTF-8titleCSRF的阻止方式一/title /head body form action/submit-form methodpostinput typehidden namecsrf_token valueyour_csrf_token_here!-- 其他表单字段 --input typesubmit valueSubmit /form /body /html 这是一份使用CSRF Token方式的一份代码这里的value我们要根据实际情况来定是服务器生成的唯一随机并且不可预测的CSRF令牌(token)。 验证Referer和Origin头 const express require(express); const app express(); ​ app.use((req, res, next) {const referer req.headers.referer;const origin req.headers.origin; ​// 检查Referer或Origin是否合法if (referer ! https://expected-referer.com origin ! https://expected-origin.com) {return res.status(403).send(CSRF check failed);} ​next(); }); ​ app.post(/submit-form, (req, res) {// 处理表单提交res.send(Form data received); }); ​ app.listen(3000); 这是通过验证referer和origin头的方式我们可以在node.js环境下写这样的JavaScript代码同时满足这两个条件我们就把参数res的状态设置为403再send一下信息CSRF check failed。 C选项的HTTP Only HTTP Only属性确实可以防止通过JavaScript访问 减少XSS攻击的风险前面已经说了cookie是什么下面来看看完整代码来看看我们是如何做的。首先确保你的计算机已经安装了node.js和express如果没有express我们可以通过npm install express指令来安装。 const express require(express); const app express(); ​ app.use((req, res, next) {const referer req.headers.referer;const origin req.headers.origin; ​// 检查Referer或Origin是否合法if (referer ! https://expected-referer.com origin ! https://expected-origin.com) {return res.status(403).send(CSRF check failed);} ​next(); }); ​ app.post(/submit-form, (req, res) {// 处理表单提交res.send(Form data received); }); ​ app.listen(3000); 当我们访问服务器的根目录/的时候它会设置一个名为secureCookie的Cookie我们把httpOnly属性设置为true即使用HTTP Only属性增强了cookie的安全性。 D选项的防止SQL注入 D说法也是说反了我们确实是可以通过输入验证和转义来防止SQL注入的。什么是SQL注入SQL注入也是一种常见的网络攻击技术攻击者通过恶意SQL代码注入到应用程序的输入字段中试图破坏或者操纵后台数据库。比如攻击者可以写一些这样的语句。 SELECT * FROM users WHERE username [用户输入的用户名] AND password [用户输入的密码]; 输入验证和转义 输入验证和转义是两种基本的安全措施它可以防止很多不同形式的注入攻击包括SQL注入。比如我们可以写这样的代码。转义说的是什么事呢就是指输入数据可能会被错误的解释为代码的特殊字符进行处理的过程我们通过转义来确保输入字符串中特殊字符比如单引号不会结束字符串文本并且开始新的SQL命令。 app.post(/submit-form, (req, res) {const email req.body.email;const age req.body.age; ​// 验证电子邮件地址if (!email.match(/^[^][^]\.[^]$/)) {return res.status(400).send(无效的电子邮件地址);} ​// 验证年龄if (isNaN(age) || age 18 || age 100) {return res.status(400).send(无效的年龄);} ​// 处理有效输入// ... }); 这里的if当中的部分即是这种方式的体现。当然还有很多比如类型检查格式验证长度验证内容检查等等。
http://www.w-s-a.com/news/709601/

相关文章:

  • 网页游戏网站搭建免费建网站哪个模板多
  • 公司起名打分最准的免费网站直播网站app开发
  • 医疗器械类网站前置审批网站临时域名
  • 金融网站策划方案网站开发表格整体页面居中
  • 句容本地网站黄石下陆区建设局网站
  • 免费网站服务陕西省咸阳市建设银行网站
  • 网站建设活动计划做网站意义
  • 莱芜新闻主持人名单seo sem 外贸建站 网站建设 文化墙设计
  • 易语言可以做网站嘛赣州网站建设开发
  • 网站建设规范布局网站建设费往什么科目
  • 乐清手机网站设计哪个汽车网站汽贸店免费做
  • 网站建设课程总结报告推广软文
  • 企业网站哪里可以做烟台seo网站推广
  • 怎样建设网站优化珠海网站建设开发
  • 泰兴住房和城乡建设厅网站福州app开发
  • 免费制作公司网站seo前线
  • 导购网站怎么推广有网站源码怎么搭建网站
  • 网站开发问题杭州制作公司网站
  • 网站推广seo是什么wordpress 去除顶部
  • 建筑学不会画画影响大吗电子商务沙盘seo关键词
  • 重庆网站建设找承越上海建设工程招投标网
  • 网站建设四个步骤下单的网站建设教程
  • 网站建设合同的验收表响应式网站建设哪家好
  • 手机网站建设视频长沙百家号seo
  • 网站未备案怎么访问网站开发前端需要学什么
  • 正黄集团博弘建设官方网站wordpress设置固定链接和伪静态
  • wordpress 建网站视频如何实现网站生成网页
  • 杭州品牌网站建设推广个人的网站建设目标
  • 济南有哪些网站是做家具团购的贸易公司自建免费网站
  • wap网站psd成立公司在什么网站