初学JAVA项目(12、Adamall)


一、前端安全

1.浏览器同源政策

     同源政策是浏览器的一个安全政策

  • 目的:是为了防止将用户信息恶意的盗取传输
  • 同源含义:域名(IP),协议头, 端口三者相同
  • MDN同源政策的内容:
    1.通常允许跨域写操作 :重定向以及表单提交。
    2.通常允许跨域资源嵌入:script\link\img\video\iframe
    3.不允许跨域读操作: ajax
URL结果原因
http://store.company.com/dir2/other.html同源只有路径不同
http://store.company.com/dir/inner/another.html同源只有路径不同
https://store.company.com/secure.html失败协议不同
http://store.company.com:81/dir/etc.html失败端口不同 (http://默认端口是80)
http://news.company.com/dir/other.html失败主机不同

     不允许跨域读操作, 那么就代表了有三种操作会受到同源政策的限制。

     即不同源网站间的AJAX的请求,网站间的DOM操作,以及两者间的cookie和indexDB之间的访问。

     即同源政策通过限制你获取当前用户记录在其他源下的cookie等

     记录在浏览器端的用户数据,以及限制了使用AJAX发送数据到其他的源的方式,以此来保障安全。

2.CORS

  • CORS - Cross Origin Resourse-Sharing - 跨站资源共享

     由于浏览器的安全策略——同源政策,进行web开发经常会遇到跨域问题.

     于是在XMLHttpRequest v2标准下,提出了CORS(Cross Origin Resourse-Sharing)的模型,试图提供安全方便的跨域读写资源。目前主流浏览器均支持CORS。

     CORS定义了两种跨域请求,简单跨域请求非简单跨域请求

1、CORS 请求类型

  • 简单跨域请求:请求方法为HEAD,GET,POST;请求头只有4个字段,Accept,Accept-Language,Content-Language,Last-Event-ID;
    如果设置了Content-Type,则其值只能是application/x-www-form-urlencoded,multipart/form-data,text/plain。
  • 非简单请求:不满足简单跨域请求的请求;

2、CORS CORS流程

     浏览器对简单请求和非简单请求的处理机制不一样。

     当我们需要发送一个跨域请求的时候,浏览器会首先检查这个请求,如果它符合上面所述的简单跨域请求,浏览器就会立刻发送这个请求。

     如果浏览器检查之后发现这是一个非简单请求,比如请求头含有X-Forwarded-For字段。这时候浏览器不会马上发送这个请求,

     而是有一个preflight,跟服务器验证的过程。如果预检通过,则发送这个请求,否则就不拒绝发送这个跨域请求。

浏览器和服务器的合作判定步骤如下:

  1. 浏览器先根据同源策略对前端页面和后台交互地址做匹配,若同源,则直接发送数据请求;若不同源,则发送跨域请求。
  2. 服务器解析程序收到浏览器跨域请求后,根据自身配置返回对应文件头。若未配置过任何允许跨域,则文件头里不包含Access-Control-Allow-origin字段,
    若配置过域名,则返回Access-Control-Allow-origin+ 对应配置规则里的域名的方式。
  3. 浏览器根据接受到的http文件头里的Access-Control-Allow-origin字段做匹配,若无该字段,说明不允许跨域;若有该字段,则对字段内容和当前域名做比对,
    如果同源,则说明可以跨域,浏览器发送该请求;若不同源,则说明该域名不可跨域,不发送请求

3.CORF

  • CSRF - Cross-Site Request Forgery - 跨站请求伪造

     同源政策通过限制你获取当前用户记录在其他源下的cookie等记录在浏览器端的用户数据,以及限制了使用AJAX发送数据到其他的源的方式,以此来保障安全。

     csrf利用的是同源政策允许跨域表单提交,以及允许跨域请求资源完成的攻击。

          
     

4.SQL注入

发生原因:

     SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄漏的一种漏洞。
在这里插入图片描述
     比如我们期望用户输入整数的id,但是用户输入了上图中下面的语句,这是条能被正常执行的SQL语句,导致表中的数据都会输出。

SQL注入攻击流程

第一步:注入点探测

自动方式:使用web漏洞扫描工具,自动进行注入点发现
手动方式:手工构造SQL注入测试语句进行注入点发现

第二步:信息获取

通过注入点取得期望得到的数据

1.环境信息:数据库类型,数据库版本,操作系统版本,用户信息等
2.数据库信息:数据库蜜罐,数据库表,表字段,字段内容等(加密内容破解)

第三步:获取权限

获取操作系统权限:通过数据库执行shell,上传木马

实例:https://www.cnblogs.com/dogecheng/p/11616282.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值