标签: xss

同步器令牌模式:如何防止 XSS 和 CSRF 的组合?

我一直在研究 OWASP 建议以防止 CSRF 攻击(https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet)。

现在,我不明白的是,这将如何防止 XSS 和 CSRF 攻击的组合攻击。假设我们有以下攻击场景:


  1. 攻击者能够执行存储型 XSS 攻击,以便每次用户访问该页面时都会执行攻击者在网站上插入的脚本。

  2. 该脚本将完全重新设计 DOM,例如,攻击者的脚本不再需要用户提供一些不相关的信息的原始表单,而是重新设计该表单,以便将该表单重新设计为添加具有管理员权限的用户的表单。请注意,用户不会看到这一点,因为字段的标签将保持不变。只是 POST 会有所不同。

  3. 攻击者知道该网站使用反 CSRF 令牌。查看 OWASP 建议:“(..)应用程序应包含一个具有通用名称(如“CSRFToken”)的隐藏输入参数”,攻击者知道大多数网站在页面上的某处都会有一个带有此 id 的隐藏字段。

  4. 攻击者确保该字段的值也在伪造的 POST 中提交。即使攻击者不知道这个隐藏字段的值,它也可以在 POST 中指定该值应与请求一起发送。这是可能的,因为用户的 DOM 已被修改,请求将来自用户的浏览器,用户的 cookie 也会随请求一起发送。

  5. 用户提交表单,然后创建假用户。


在我看来,仅使用 CSRF 令牌无法避免这种情况。或者同步器模式的隐含假设是 XSS 攻击已被消除?

security xss csrf owasp

0
推荐指数
1
解决办法
1202
查看次数

如果没有设置 htmlspecialchars 字符集,尽管有 HTTP 标头字符集,UTF-7 是否也可能?

我想仔细检查一下并相信这对其他人会有帮助。如果有人在代码中使用 htmlspecialchars($var) 并运行 5.4 之前的 PHP 版本,那么他们就会对 utf-7 XSS 持开放态度。这是既定的。即使标头内容字符集是 utf-8,我是否正确假设该网站仍对 utf-7 XSS 开放,因为 PHP 的服务器内容字符集默认为 iso-8859-1?

编辑:有人问我希望从中获利什么。我希望确保项目不会受到 utf-7 的影响,因为有些程序员似乎不倾向于设置 htmlspecialchars 的第三个参数,即字符集。如果您了解我提到的服务器字符集以及它如何适合 utf-7,那么我真的需要您的帮助。

php security xss utf-7

0
推荐指数
1
解决办法
735
查看次数

让我的搜索框容易受到 XSS 攻击

我一直在研究这个简单的搜索框来搜索表中的名称,我已经成功了,现在我一直在研究很多关于如何使这个搜索框容易受到攻击的内容(这是我正在做的一门课程要求) )。

当我输入时,<script>alert("boom!");</script>我的页面上会发出警报,但在我当前的代码中,它并没有真正做到这一点,我也不知道为什么,因为我使用jquery?

如果有人能看一下我的代码并使这段代码容易受到攻击,我将不胜感激:)

这是我的代码:

$(document).ready(function(){

  $('#search').on('click', function(){
    var term = $('#term').val().toLowerCase();

    $.each(list,function(index,value){
      var count = arrayInArray(term,list[index]);
      console.log(count);
      $("tr:eq(" + (count + 1) + ") td").each(function(){
        var tb = [];
        tb.push($(this).text());
        console.log(tb); // data to be printed somewhere
      });
    });
  });

});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-group">
  <input id="term" type="text" class="form-control" placeholder="Search Participant...">
  <span class="input-group-btn">
    <button id="search" class="btn btn-default" type="button">Search</button>
  </span>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript xss jquery

0
推荐指数
1
解决办法
3797
查看次数

将 eval() 转换为 JSON.parse

我正在经历使用 eval() 对于基于 XSS 的攻击的不良影响。我需要保护一段代码免受可能的 XSS 攻击,我猜 JSON.parse() 应该可以正常工作。

var request = new XMLHttpRequest(); 
var url = encDataPath + "/jcr:content/metadata.json?_charset_=utf-8";
url = Granite.HTTP.externalize(url);
request.open("GET", url ,false);
request.send(null);

var jsonData =eval("(" + request.responseText + ")"); // <-- here
var assetTitle = jsonData["dc:title"];
var mimetype = jsonData["dc:format"];
Run Code Online (Sandbox Code Playgroud)

有人可以建议我如何将eval()(jsonData)更改为JSON.parse?

javascript xss json eval code-injection

0
推荐指数
1
解决办法
1464
查看次数

检测此PHP文件中的漏洞

我有这个链接

http://example.com/example.php?link=<link>&title=<title>&bild=<picturelink>&named=<text>

<>中的每个术语代表一个变量,可以由一个卑鄙的攻击者改变.

<named> = domain-name of <link>
Run Code Online (Sandbox Code Playgroud)

这是处理php文件

<?php
if(strpos($_GET[named],"known.com")!==false or 
   strpos($_GET[named],"known2.com")!==false or 
   strpos($_GET[named],"known3.com")!==false)
{
echo '<div align="center"><a href=' . 
     $_GET[link] . 
     ' target="_blank"><img alt="' . 
     htmlentities(utf8_decode($_GET[title])) . 
     '"  title="' . htmlentities(utf8_decode($_GET[title])) . 
     '"  src=' . $_GET[bild] . 
     '  border=0></a></div><br><br><b>' . 
     htmlentities(utf8_decode($_GET[title])) . 
     '</b><br><br><a  href=' . 
     htmlentities($_GET[link]) . 
     ' target="_blank" style="color: grey;">Text <i>' . 
     htmlentities(utf8_decode($_GET[title])) . '</i> text ' . 
     htmlentities($_GET[named]) . '!</a><br>(text)';
}
else
{
echo 'not allowed';
}
?>
Run Code Online (Sandbox Code Playgroud)

怎么能被攻击,你建议对php文件进行哪些更改?

php security xss

-1
推荐指数
1
解决办法
228
查看次数

如何使用 Javascript 更改 &lt;div&gt; 标签内的文本?

代码

我需要一些关于使用 JavaScript 编辑 HTML 元素的帮助。是否可以用javascript更改“文本”?我尝试过使用document.getElementById,但我认为我做得不正确。

html javascript xss element

-1
推荐指数
1
解决办法
1万
查看次数

symfony2的后置值中的安全性

我的网站上有文本框.此文本框使用form和post方法提供文本值.此表单在数据库中搜索特殊文本.如何确定sql injectin或xss的安全输入数据.

security xss sql-injection symfony

-2
推荐指数
1
解决办法
2917
查看次数

标签 统计

xss ×7

security ×4

javascript ×3

php ×2

code-injection ×1

csrf ×1

element ×1

eval ×1

html ×1

jquery ×1

json ×1

owasp ×1

sql-injection ×1

symfony ×1

utf-7 ×1