U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

面试中常见的的 web 安全问题

来源:http://www.tudoupe.com时间:2022-07-20

背景

之前出去面试的时候, 经常会被问到一些安全方面的问题。

这里涉及到很多安全问题,我只是知道一些头发,而且每次面试之前我必须寻找信息,这很麻烦。

因此,我汇编了一些我以前收集的资料和面试经验,并汇编了系统,希望能帮助大家。

「正文」

首先,简要介绍了一些常见的攻击方法:

  1. SQL注入

  2. XSS

  3. CSRF

  4. 点击劫持

  5. 中间人攻击

1

SQL 注入

这是一个更简单的攻击方法。

如果后端在使用用户输入数据来组装SQL查询文时不采取预防措施,遇到一些恶意输入,最后生成的SQL会遇到问题。

举个例子

例如,地址栏输入:

为发送获取请求,需要调用查询声明如下:

通常, 该条返回 id = 1.

如果攻击者想要获取所有条目,则该句子可以更改为:

没事了,为什么?

这是因为,id = -1 永远是 false,1=1 永远是true,所有整个where语句永远是ture.

所以 where 条件相当于没有加where条件,那么查询的结果相当于整张表的内容,攻击者就达到了目的。

目前的系统通常包括过滤和验证机制,可以有效地防止SQL注入问题。

2

什么是XSS,如何预防它

XSS通常被称为跨站点脚本攻击。

攻击的目的是通过代码注入来实现.

举个例子

我们有一个社交网站,让人们互相访问彼此的空间,网站可能会做这样:

如果你使用Chrome浏览器,你会收到浏览器的警告:

类似的Chrome浏览器可以自动帮助用户保护自己免受攻击,这很好。

但这不是说,只要我使用Chrome,一切都会好的,保卫,保卫。

如何保护XSS

对于XSS攻击,通常有两种防御方法:

  1. 字符转译

  2. CSP(Content Security Policy)

01

字符转译

实践是翻译输入和输出内容,翻译诸如引用、括号、条等字符。

攻击代码可以翻译

转译成:

更换这些字符后,恶意代码会变得无效,XSS攻击不会轻易发生。

对于一般输入, 粗略的翻译可以像上面所示进行.

在某些情况下,轻微的翻译也不够,例如:

如果链接中有一个Javascript:start协议,当点击时,浏览器会执行链接背后的代码。

目前,翻译是不需要的,需要对url协议的白色名称控制,仅允许诸如http、https、http、mailto等安全协议。

包括图像src属性 img src="{ {xss}}", iframe iframe src="{ {xss}}" 所有这些问题存在,需要处理白名单。

但是,在其他情况下, 例如, 丰富的文本, 你现在不能这样做.

这种粗糙的翻译将摧毁原始格式.

在这种情况下,更合适的策略是使用白名单来筛选标签和属性。

简单总结一下:

当我们完成翻译字符时, 让我们再看看CSP.

02

CSP

CSP , Content Security Policy 。

通过设置一个白名单,我们可以设置哪些外部资源被允许被浏览器载入。

开放CSP有两种方式:

  1. 设置HTTP头条Content-Security-Policy

  2. 设置meta标签的方式

一旦正确的规则被配置,即使网站有漏洞,恶意代码也不会被执行。

CSP兼容性:

CSP 文档地址:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

3

CSRF

CSRF  全称是跨站请求伪造( Cross Site Request Forgery)

实质上, 它是使用用户的身份或授权秘密执行某些操作.

CSRF实际上是通过 cookie 属性进行的。

举个例子

我们登录了某个 http://tao.com 购物网站之后,cookie 就会有登录过的标记了。

此时请求http://tao.com/pay?id=123&money=1000, 是会带着 cookie 的,server 端就知道已经登录了。

如果您在http://tao.com.com请求其他域名的API,例如http://tx.当使用com/api时,它不包含cookie,这是浏览器相同的源代码策略的限制。

但是此时在其他域名的页面中,请求http://tao.com/pay?id=123&money=1000,就会带着tao.com的 cookie 。

这是CSF攻击的理论基础。

「如何捍卫 CSRF」

有效保护CSF的方法是添加层级授权验证。

例如,在今天的购物网站上,如果你处理现金交易,你必须输入密码或解密身份验证。

此外,敏感接口使用 POST请求而不是GET。

4

点击劫持


click-jacking,也被称为UI-覆盖攻击。

这也是比较常问到的一个问题,也是我们最常见的一种情况。

攻击方法是将透明的iframe层添加到某些操作的按钮上。

只要点击它,你就会陷入困境。

“ 如何防卫点击劫持 ”

常用的两种方式:

1.使用HTTP头部防御

通过配置 nginx 发送 X-Frame-Options 响应头,这个 HTTP 响应头 就是为了防御用 iframe 嵌套的点击劫持攻击。 这样浏览器就会阻止嵌入网页的渲染。

响应头有三个可选值,分别是:

  1. DENY,表示网页不能通过iframe显示。

  2. SAMEORIGIN,这意味着页面可以通过iframe以相同的域名显示。

  3. ALLOW-FROM,表示该页面可以在指定的源iframe中显示。

更多细节可以在MDN上找到关于X-Frame-Options响应头条的。

2.使用JavaScript来防御

确定顶部视图域名是否与此页的域名匹配。如果它不匹配,恶意页面会自动跳到我们的页面。

5

中间人攻击

中间人攻击(英语:Man-in-the-Middle Attack,简称MITM)是网络入侵的长期手段,例如SMB对话劫持和DNS欺诈等攻击是MITM攻击的典型特征。

简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探来达到攻击的目的,而通信的双方却毫不知情。

“如何防御中路攻击”

以下是防止中间人攻击的一些建议:

  1. 确保您当前访问的网站使用HTTPS

  2. 如果你是一个网站管理员,你应该实施HSTS协议

  3. 不要通过公共Wi-Fi发送敏感数据

  4. 如果您的网站使用SSL,请确保您不使用不安全的SSL/TLS协议。

  5. 不要点击恶意链接或电子邮件。

还有一个容易忽略的脆弱性

window.opener

带有target="_blank"跳跃的网页有一个浏览器window.opener对象可以跳到原始页面,这可能会被恶意网站使用,例如,一个恶意网站将其恶意网站放置在教资会网站上,当教资会网站使用者在一个新的窗口打开网页时,恶意网站利用这个漏洞将原来的UCC网站跳到伪造的捕鱼页面上,当用户返回原始窗口时,它可能忽略浏览器URL已经更改,伪造网页可能导致进一步的捕鱼或其他恶意行为:

代码如下

想象一下,你在浏览淘宝的时候,点击了网页聊天窗口的一条外链,出去看了一眼,回来之后淘宝网已经变成了另一个域名的高仿网站,而你却未曾发觉,继续买东西把自己的钱直接打到骗子手里。

如何修复

添加rel="noopener noreferrer"属性到 target="_blank」。

缺点:  为禁止了跳转带上 referrer,目标网址没办法检测来源地址。

还有一种方法是,所有的外部链接都替换为内部的跳转连接服务,点击连接时,先跳到内部地址,再由服务器 redirect 到外部网址。

许多网站现在这样做,不仅是为了避免风险,而且是为了控制非法网站的开放:

大概就是这么多。

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息