Access to XMLHttpRequest at '...' from origin '...' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
如何实现跨域要求呢?1、jsonp 利用了 script 不受同源策略的限定 缺陷:只能 get 办法,易受到 XSS攻击
2、CORS(Cross-Origin Resource Sharing),跨域资源共享 当利用XMLHttpRequest发送要求时,如果浏览器创造违反了同源策略就会自动加上一个要求头 origin; 后端在接管到要求后确定相应后会在后端在接管到要求后确定相应后会在 Response Headers 中加入一个属性 Access-Control-Allow-Origin; 浏览器判断相应中的 Access-Control-Allow-Origin 值是否和当前的地址相同,匹配成功后才连续相应处理,否则报错 缺陷:忽略 cookie,浏览器版本有一定哀求

3、代理跨域要求 前端向发送要求,经由代理,要求须要的做事器资源 缺陷:须要额外的代理做事器
4、Html5 postMessage 方法 许可来自不同源的脚本采取异步办法进行有限的通信,可以实现跨文本、多窗口、跨域通报 缺陷:浏览器版本哀求,部分浏览器要配置放开跨域限定
5、修正 document.domain 跨子域 相同主域名下的不同子域名资源,设置 document.domain 为 相同的一级域名 缺陷:同一一级域名;相同协议;相同端口
6、基于 Html5 websocket 协议 websocket 是 Html5 一种新的协议,基于该协议可以做到浏览器与做事器全双工通信,许可跨域要求 缺陷:浏览器一定版本哀求,做事器须要支持 websocket 协议
7、document.xxx + iframe 通过 iframe 是浏览器非同源标签,加载内容中转,传到当前页面的属性中 缺陷:页面的属性值有大小限定
XSS跨站脚本攻击XSS (Cross-Site Scripting)跨站脚本攻击是一种常见的安全漏洞,恶意攻击者在用户提交的数据中加入一些代码,将代码嵌入到了Web页面中,从而可以盗取用户资料,掌握用户行为或者毁坏页面构造和样式等。为了和 CSS 区分,这里把攻击的第一个字母改成了 X,于是叫做 XSS。
最大略的便是当我们提交一个查询后弹出一个alert页面,却无论如何都关不掉,这便是发生了XSS跨站脚本攻击。
XSS产生缘故原由:XSS产生的缘故原由是过于信赖客户真个数据,没有做好过滤或者转移等事情。如果客户端上传的数据中插入一些符号以及javascript代码,那么这些数据将会成为运用代码中的一部分了,这样就造成了XSS攻击。
XSS分类:存储型:攻击者将恶意代码存储到了数据库中,在相应浏览器要求的时候返回恶意代码,并且实行。这种攻击常见于带有用户保存数据的网站功能;反射型:将恶意代码放在URL中,将参数提交到做事器。做事器解析后相应,在相应结果中存在XSS代码,终极通过浏览器解析实行;DOM型:取出和实行恶意代码由浏览器端完成,属于前端 JavaScript的安全漏洞。XSS防御:对主要的 cookie设置 httpOnly, 防止客户端通过document.cookie读取 cookie;对输入内容的特定字符进行编码,前端后端都可以对传入的内容进行过滤,去掉带javascript等字段的输入CSRF跨站要求假造CSRF( Cross-site request forgery)跨站要求假造,也是一种常见的安全漏洞。XSS相称于是掌握了站点内的信赖用户,而CSRF则通过伪装成受信赖用户的要求来利用受信赖的网站。
CSRF举例:
用户登录受信赖网站A,并在本地天生登录态Cookie。(如果用户没有登录网站A,那么网站B在获取A网站的信息并且去要求网站A的接口时,会提示登录)在不登出A的情形下,访问恶意网站B,那么网站B得到了网站A的所有信息,然后B网站去要求A网站的接口,伪装成A网站的正常要求为所欲为。
下边以示意图来解释CSRF全体流程:
把稳:
CSRF中恶意网站仅仅是伪装成了正常用户,但是其并不可以直接获取到正常用户的登录态cookie等信息。如果不做防御,被攻击网站做事器是无法区分是否是冒用用户,由于当前要求确实带着登录凭据等信息。
CSRF防御:
Referer 头验证:在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 要求的来源地址。不靠谱,Referer可以被改变;Token验证:做事器发送给客户端一个Token,客户端提交的表单中(或者URL上)带着这个Token。如果这个Token 不合法,那么做事器谢绝这个要求。双重Cookie验证:利用恶意网站无法获取cookie信息,仅可冒用的特点,我们将cookie中的参数取出来,加入到要求参数中,做事端进行校验,如果参数中没有附加额外的cookie中的参数,那么就谢绝要求。解析:
XSS和CSRF均属于安全漏洞,和我们的开拓事情息息相关。对付一些对安全性有一定哀求的方向和岗位,理解常见的XSS和CSRF攻击无疑是口试的一大加分项。
那么CSRF和XSS的差异有哪些呢?
CSRF攻击须要用户先登录网站A,恶意网站B获取到A网站用户的 cookie;XSS攻击则不须要登录。CSRF攻击实质是利用网站A本身的漏洞,去要求网站A的干系接口;XSS攻击向网站 A 注入恶意代码,然后通过实行恶意代码,修改了网站A的内容。SSRF做事端要求假造SSRF是一种由攻击者布局要求,利用做事端发起的一种安全漏洞。一样平常情形下,SSRF攻击的目标是外网无法访问的内部系统。
我们先来看下SSRF攻击的示意图:
SSRF漏洞举例:正常的网络要求流程:客户端A发起要求 -> 做事端B吸收要求 -> 做事端B处理要求 -> 做事端B返回相应存在SSRF漏洞下的网络要求流程:
比如现在客户端A发起的要求是这样的 www.xxxxx.com/xxx.php?ima… 做事端B收到该要求后,会接着取访问www.abc.com/photo.jpg 获取资源文件。如果做事端B对客户端发起的要求没有进行过滤等操作,那么?image=可能会被恶意修改。末了的结果便是,借助于公网上的做事器来访问了内网系统。
SSRF产生缘故原由:SSRF 形成的缘故原由大都是由于做事端供应了从其他做事器运用获取数据的功能,且没有对目标地址做过滤与限定。比如指定URL地址获取网页文本内容,加载指定地址的图片和文档等。
常见SSRF漏洞涌现场景:分享场景,通过URL地址分享网页内容。转码做事,在线翻译场景。地址加载或下载图片。图片、文章收藏功能。未公开的api实现以及其他调用URL的功能等。SSRF漏洞危害:由于外网借助了做事端来实现了对内网做事器的访问,以是很多操作都可以进行,包括如下的危害:
对做事器所在的内网进行端口扫描,获取一些做事的banner信息等。攻击运行在内网或者本地的运用程序。对内网WEB运用进行指纹识别,通过访问默认文件实现。下载内网的一些资源文件等。SSRF的防御方法:对缺点信息进行统一处理,避免用户可以根据缺点信息来判断远端做事器的端口状态。对要求的端口进行限定,限定为HTTP常用的端口,比如,80,443和8080等。设定IP黑名单。避免运用被用来获取内网数据,攻击内网。禁用不须要的协议。仅仅许可HTTP和HTTPS要求。对返复书息进行有效过滤等。SQL注入SQL注入是指通过把SQL命令插入到Web表单提交或输入域名或页面要求的查询字符串,终极达到欺骗做事器,实行恶意的SQL命令。
SQL注入便是做事端将客户端传入的恶意SQL语句直接进行了实行,这样会导致问题涌现。比如说用户在登录的时候,利用了or 1=1来完成身份验证和授权。
SQL注入是一种盛行的攻击攻击方法,但是通过一些手段是可以防御该攻击的,常见的防御手段如下:
利用预编译语句,比如MyBatis中的SQL语句利用#号代替$符号。利用安全的存储过程来防止SQL注入。对客户真个输入进行数据类型的检讨等原创不易,大家能坚持学习到末了也很棒,以是点赞+关注再走,探求博主不迷路