csrf & xss

csrf (Cross-site request forgery) 伪造请求会话、cookie注入

  1.可以通过document.cookie="JSESSIONID=123456789"; //设置tomcat默认的会话cookie名称,值为要注入的会话cookie

  2.直接登陆url,就拿到了另一个会话。

防范方法:

    1.检查http头的referer (这个值也可以伪造)

    2.检查客户端IP(如果功击者和被害者通过同一路由上网公网IP一样)

    3.添加token,每请求一次更改一次服务端token,token还可以防止重复提交。

 

xss (cross site scripting) 跨站脚本攻击

  比如说在留言版输入留言 <script>location=http://www.baidu.com</script>,当别人打开有这条留言的网页时,浏览器页面跳转到了baidu.com

防范方法:

  前端表单验证+后台表单验证+特殊字符过滤或转义

  这个方法还可以防范sql注入

转载于:https://www.cnblogs.com/BigIdiot/archive/2013/01/29/2881503.html

### CSRF 的概念 CSRF 是 Cross-Site Request Forgery 的缩写,中文译为跨站请求伪造。它是一种利用用户的登录状态,在用户不知情的情况下发起恶意操作的安全攻击形式[^1]。这种攻击的核心在于攻击者诱导受害者访问特定链接或页面,从而让受害者的浏览器向目标网站发送带有认证信息(如 Cookie)的请求。 --- ### CSRFXSS 的主要区别对比 #### 1. 攻击原理的不同 - **CSRF**: 利用了用户的合法身份和已有的会话凭证(通常是 Cookies),通过伪装成用户的行为来执行未经授权的操作。例如,攻击者可能诱使用户点击一个精心设计的 URL 或提交表单,而这些行为会在后台触发针对目标站点的有效请求。 - **XSS (Cross-Site Scripting)**: 主要是指攻击者注入恶意脚本到网页中,当其他用户浏览该网页时,恶意脚本会被执行并窃取敏感数据或者劫持用户会话。XSS 更侧重于直接操控前端环境中的 JavaScript 执行上下文[^4]。 --- #### 2. 实现方式上的差异 - **CSRF**: 常见的方式包括嵌入图片标签 `&lt;img src=&quot;...&quot;&gt;`、超链接 `&lt;a href=&quot;...&quot;&gt;` 或自动提交的 HTML 表单等。其本质是借助用户的信任关系完成非法请求[^2]。 - **XSS**: 可分为存储型 XSS 和反射型 XSS。前者指恶意脚本被永久保存在服务器数据库里;后者则是通过查询参数等方式临时传递给客户端解析运行[^3]。 --- #### 3. 影响范围的区别 - 对于 **CSRF**, 它的影响更多体现在对业务逻辑层面的危害上,比如修改密码、转账支付等功能性接口容易受到威胁。然而由于缺乏交互能力,单纯依靠 CSRF 很难进一步挖掘深层次的信息泄露风险。 - 而对于 **XSS**, 不仅可以读取当前页面的内容以及 cookies, 还能够冒充真实用户实施更复杂的后续动作,因此潜在破坏力更大一些。 --- #### 4. 防护措施方面的异同点 尽管两者都属于常见的 Web 应用安全漏洞类别之一,但是它们各自的防御策略存在显著不同之处: - **防止 CSRF** - 使用一次性 Token 来验证每次请求的真实性; - 设置 Referer Header 检查来源地址合法性; - 启用 SameSite 属性限制第三方调用权限。 - **防范 XSS** - 对输入的数据进行全面过滤转义处理; - 添加 HttpOnly 标志位保护重要 cookie 数据免遭 JS 访问; - 结合 Content Security Policy (CSP) 减少外部资源加载可能性。 ```python # 示例代码展示如何生成随机token用于抵御CSRF攻击 import secrets def generate_csrf_token(): return secrets.token_hex(16) csrf_token = generate_csrf_token() print(f&quot;Generated CSRF Token: {csrf_token}&quot;) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值