xss 相关问题

跨站点脚本(XSS)是Web应用程序中常见的一种计算机安全漏洞,它使恶意攻击者能够将客户端脚本注入其他用户查看的网页中。攻击者可以使用利用漏洞利用的跨站点脚本漏洞来绕过访问控制,例如相同的源策略。

Yii2:如何验证表单/模型输入中的XSS(跨站脚本)?

Yii2 支持使用 helper class\yii\helpers\HtmlPurifier 对显示数据进行 XSS(跨站点脚本)验证,但这仅验证和清理像这样的输出代码 回声

回答 2 投票 0

警告:清理不安全的样式值 url

我想在 Angular 2 应用程序的组件模板中设置 DIV 的背景图像。然而,我不断在控制台中收到以下警告,但没有达到预期的效果...我不确定...

回答 10 投票 0

如何修复 ASP.NET Core MVC 中的跨站脚本 (XSS) 漏洞

我的 ASP.NET MVC 代码中有以下代码。 安全评估工具已报告跨站脚本 (XSS) 漏洞 返回新的 JsonResult(new { 响应 = sresponse, clientdata = ...

回答 1 投票 0

NextJS 内容安全策略 (CSP)

我目前正在为使用 Next.js 制作的生产应用程序制定内容安全策略 (CSP)。虽然我找到了使用该框架实施 CSP 的可靠文档,但有...

回答 1 投票 0

允许子域之间的跨站请求,而不更改第二个子域的文件内容

我目前正在尝试包装一个 Web 应用程序 (ConnectWise) 以包含在我公司的中央 Intranet 站点中。大多数情况下,这是一个相当简单的过程;创建一个包含页面,...

回答 3 投票 0

如果某些属性包含这些值,如何在 Spring Boot 中清理请求正文

如果作为值存在,是否有任何库可以对这些进行编码,例如。可以是 html 属性、js 事件、脚本、评估为 true 的表达式吗?尽管它应该转义诸如“>50000&

回答 1 投票 0

var_dump 或 print_r 和 html 编码

","","b","i","你好"); 打印_r($x); 回显“”; var_dump($x); 在 html 源中输出这个! 大批 ( [0] => <?php $x = array("<b>","<i>","b","i","<h1>hello</h1>"); print_r ($x); echo "<hr>"; var_dump ($x); 将其输出到 html 源代码中! Array ( [0] => <b> [1] => <i> [2] => b [3] => i [4] => <h1>hello</h1> ) <hr>array(5) { [0]=> string(3) "<b>" [1]=> string(3) "<i>" [2]=> string(1) "b" [3]=> string(1) "i" [4]=> string(14) "<h1>hello</h1>" } 显然,我可能会因此受到 XSS 攻击! 如何确保数组值经过 html 编码? 虽然这个问题有一个公认的答案,但我认为 David Morrow 的答案是最好/最简单/最实用的(使用 print_r true 标志): echo "<pre>".htmlentities(print_r($some_array, true))."</pre>"; 尽管如此,这是另一种使用输出缓冲的解决方案: <?php ob_start(); print_r($some_array); $buffer = ob_get_clean(); echo "<pre>".htmlentities($buffer)."</pre>"; ?> 我发现knittl的代码不起作用。我必须进行一些小更改才能使其正常工作,如下所示: array_walk_recursive($inputarray, function(&$v) { $v = htmlspecialchars($v); }); 现在这在 PHP5.3+ 中工作得很好 或者您可以将 print_r 保存到字符串中,然后使用设置为 true 的第二个参数对其进行转义。 $arr = array('<script>alert("hey");</script>'); $str = print_r($arr, true); echo htmlentities($str); 输出: Array ( [0] => <script>alert("hey");</script> ) 脚本未执行 这个 PHP 手册注释中描述了一个对我有用的函数。 他替换var_dump的函数实现为: function htmlvardump() { ob_start(); $var = func_get_args(); call_user_func_array('var_dump', $var); echo htmlentities(ob_get_clean()); } 这在 PHP 5.3+ 中对我有用。 (请注意,原始来源中有一个拼写错误)。 一个简单的解决方案是使用 array_walk_recursive: array_walk_recursive($inputarray, function(&$v) { $v = htmlspecialchars($v); }); echo <pre>; echo htmlspecialchars(print_r($key['value'], true)); echo '</pre>'; 我使用此代码从无sql数据库输出数组值(包含adsense代码)。 感谢 Knittl,这就是我的想法。 按照我想要的方式工作! <?php $x = array("tag1" => "<b>","tag2" => "<i>","tag3" => "b","tag4" => "i","tag5" => "<h1>hello</h1>"); echo "<hr><pre>"; blp_print_r ($x); echo "<hr>"; print_r($x); echo "</pre><hr>"; /* outputs this in the browser normal view new one... Array ( ['tag1'] => <b> ['tag2'] => <i> ['tag3'] => b ['tag4'] => i ['tag5'] => <h1>hello</h1> ) traditional one... Array ( [tag1] => [tag2] => [tag3] => b [tag4] => i [tag5] => hello ) */ function blp_print_r($inputarray){ echo "Array\n(\n"; echo "<blockquote>"; array_walk($inputarray,"html_encoder"); echo "</blockquote>"; echo ")"; } function html_encoder($current_val,$current_key){ echo "['" , htmlentities($current_key, ENT_QUOTES, "UTF-8") , "']", " => "; echo htmlentities($current_val, ENT_QUOTES, "UTF-8") , "\n"; } ?> 我发现这个页面非常有帮助,但我确实将函数修改为递归,walker 处理函数在回显键后检查值处的数组,然后回调该数组上的原始函数。我认为这使它成为真正的“递归 htmlentity 函数”,因此有了新名称...... function htmlentities_print_r( $inputarray ) { echo "<pre>" ; array_walk( $inputarray , "html_encoder" ) ; echo "</pre>"; } function html_encoder($current_val,$current_key){ echo "['" , htmlentities($current_key, ENT_QUOTES, "UTF-8") , "']", " => "; if ( is_array( $current_val ) ) { blp_print_r( $current_val ) ; } else { echo htmlentities($current_val, ENT_QUOTES, "UTF-8") , "\n"; } } 确实, print_r 为 true 的解决方案是最简单的解决方案。但我会这么做: $ret = htmlentities( print_r( $some_array, true ) ) $ret = str_replace( array("\n"), array('<br>'), $ret ); printf( "<br>Result is: <br>%s<br>", $ret ); 但这取决于你们所有人。

回答 9 投票 0

如何修复JSP页面中checkmarx反射的XSS攻击?

在下面的 JSP 页面中,Checkmax 显示了反射型 XSS 攻击,因为我在 JavaScript 源代码中使用 ${pageContext.reqest.contextPath} 变量。我尝试过使用 <p>在下面的 JSP 页面中,Checkmax 显示了反射型 XSS 攻击,因为我在 JavaScript 源中使用 <strong>${pageContext.reqest.contextPath}</strong> 变量。我尝试过使用<pre><code>&lt;script type=&#34;text/javascript&#34; src=&#34; &lt;c:url value=&#34;${pageContext.request.contextPath}/js/viewone.js&#34; /&gt;&#34;&gt; </code></pre>,但没有成功。</p> <pre><code>&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD HTML 4.01 Transitional//EN&#34; &#34;https://www.w3.org/TR/html4/loose.dtd&#34;&gt; &lt;%@ page language=&#34;java&#34; contentType=&#34;text/html; charset=ISO-8859-1&#34; pageEncoding=&#34;ISO-8859-1&#34;%&gt; &lt;%@ taglib prefix=&#34;c&#34; uri=&#34;http://java.sun.com/jsp/jstl/core&#34; %&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=ISO-8859-1&#34;&gt; &lt;title&gt;jsp page&lt;/title&gt; &lt;script type=&#34;text/javascript&#34; src=&#34;${pageContext.reqest.contextPath}/js/viewone.js&#34;&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;h3&gt;all contents goes here &lt;/h3&gt; &lt;br&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>如果有人能帮助解决这个问题,我将非常感激。我在 stackoverflow 中搜索了很多解决方案,但没有帮助。</p> </question> <answer tick="false" vote="1"> <p>就您而言,我认为这是 CheckMarx 误报,因为 <pre><code>request.contextPath</code></pre> 不是用户输入。无论如何,如果你必须修复它,我的经验是你必须使用 CheckMarx“识别”的一些库/方法来逃避 <pre><code>pageContext.reqest.contextPath</code></pre>。</p> <p>例如在我的例子中,我使用了 <a href="https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html" rel="nofollow noreferrer">StringEscapeUtils.escapeHtml</a> 并且 CheckMarx 对此很满意。只需确保您的 <pre><code>pageContext.reqest.contextPath</code></pre> 中没有任何 html 实体,例如“&”、“">”、...</p> </answer> </body></html>

回答 0 投票 0

在身份验证之前设置会话令牌会导致安全问题吗?

我创建了一个网站登录页面,其工作方式如下: 用户加载网站后,服务器会设置一个随机的 26 个字符的字母数字令牌 cookie。 (这个cookie设置为HTTPOnly=true,...

回答 1 投票 0

xss 与 Laravel 5.1

我正在使用 laravel 5.1 我使用此代码将帖子保存到数据库 Auth::User()->posts()->save(Blog::create($request->all())); 当我使用此代码显示帖子时,我想要一些文本和图像......

回答 3 投票 0

使用 img 标签加载不受信任的 SVG 时出现 XSS

使用img标签加载不受信任的SVG文件是否存在XSS威胁? 如: 我读到大多数浏览器都禁用通过 th 加载的 svg 文件中的脚本...

回答 3 投票 0

我正在尝试消毒,但不起作用

我试图在将 html 字符串发送到数据库之前对其进行清理,我正在使用 sanitize-html npm 包,但它不起作用 if (注释内容) { const resultContent = 清理(noteContent); ...

回答 1 投票 0

位置图XSS攻击

我在 Drupal 工作,我有一个带有输入字段的页面来搜索您的位置。现在,有可能进行 XSS 攻击,我正在尝试使用消毒功能来修复它,但它不起作用......

回答 1 投票 0

为什么checkmarx使用DOMPurify后没有通过XSS漏洞?

我正在使用 Checkmarx 扫描项目中的漏洞,但无法在 JS 文件中使用 DOMPurify 清除 XSS 漏洞。 示例代码: 函数purifyDOM(标签){ var dom_purify = DOMPurify.

回答 1 投票 0

如何为 JavaScript XSS 测试创建“不安全”环境

我正在学习 XSS 安全性以及如何预防它。为此,我想创建有漏洞的代码,然后看看如何添加安全措施来修复它。 我创建了一个接受

回答 1 投票 0

如何跨域使用window.postMessage?

window.postMessage 的目的似乎是允许不同域上托管的窗口/框架之间进行安全通信,但实际上在 Chrome 中似乎不允许这样做。 这是 SC...

回答 0 投票 0

需要帮助修复 XSS 攻击 (CVE-2021-4231) Angular8

需要修复使用 Angular8 (8.1.1) 构建的应用程序中潜在的 XSS 攻击。在https://github.com/angular/angular/pull/40525/files找到了参考,但找不到packages/c...

回答 1 投票 0

JS 中的括号替代方案,如果有的话?

我在客户端应用程序中发现了跨站脚本漏洞。问题是易受攻击的参数不接受括号。所以像alert(document.cookie)这样的东西...

回答 3 投票 0

如何避免 Winforms c# 中的 Reflected_xss_all_clients 漏洞

目前,我正在从事一个Winforms项目。 当我通过 CheckMarx 扫描我的 Winforms 应用程序时,我收到多个 Reflected_xss_all_clients 漏洞。 我知道没有

回答 2 投票 0

将 JavaScript 注入并执行到现有 DOM 中

我正在尝试将 JavaScript 代码注入到现有的 DOM 中。 我已经看到,如果我手动将脚本放入浏览器的 DOM 元素检查器中 alert("XSS 测试");</scrip...</desc> <question vote="1"> <p>我正在尝试将 JavaScript 代码注入到现有的 DOM 中。</p> <p>我已经看到,如果我手动将脚本放入浏览器的 DOM 元素检查器中</p> <pre><code>&lt;script&gt;alert(&#34;XSS test&#34;);&lt;/script&gt; </code></pre> <p>脚本节点已添加到 DOM,但它<strong>没有效果</strong>。我的意思是,没有显示警报框。</p> <p><a href="https://i.stack.imgur.com/HMFRy.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL0hNRlJ5LnBuZw==" alt=""/></a></p> <p>另一方面,如果我使用 document.write() 通过 JavaScript 控制台将脚本作为纯文本放置,在这种情况下,代码会立即被解析并执行,并且警报框会按预期显示。</p> <pre><code>document.write(&#39;&lt;script&gt;alert(&#34;XSS test&#34;);&lt;/script&gt;&#39;); </code></pre> <p>我习惯于看到在检查器中对 DOM 元素进行手工更改会立即反映在页面中,而 JavaScript 节点似乎是一个例外。</p> <p>为什么 Web 浏览器不执行在检查器中手动放置的 JavaScript 节点?</p> <p>还有其他方法可以将脚本节点发送到 DOM 并使其立即运行吗?</p> </question> <answer tick="true" vote="2"> 通过 <p><code>script</code><pre> 添加的 </pre><pre><code>innerHTML</code></pre> 标签和相关方法(<pre><code>insertAdjacentHTML</code></pre> 等)不会被执行。 (确切的规则位于 HTML 规范的 <em><code>script</code></em> 部分中的 <a href="https://html.spec.whatwg.org/multipage/scripting.html#the-script-element" rel="nofollow noreferrer">某处<pre>,但它的工作量很大。)这可能是因为早期就发现编写不佳的页面可能会使用 </pre><code>innerHTML</code></a> 等来附加用户内容,因此不执行它是避免非常非常基本的 XSS 攻击的快速而简单的方法。但只是非常非常基本的。<pre> </pre>您可以向 DOM 添加 </p><code>script</code><p> 标签,并通过创建和附加脚本标签来执行它:<pre> </pre><code>const script = document.createElement(&#34;script&#34;); script.textContent = `console.log(&#34;Hi there&#34;);`; document.body.appendChild(script); </code></p> <pre>例如,您可以从 devtools 中的控制台选项卡执行此操作,而不是 DOM 检查器选项卡。</pre> <p> </p> </answer>向政府网站sql数据库服务器注入js合法吗<answer tick="false" vote="0"> <p>这有多容易做到?</p> <p> </p> </answer>尝试转到您想要的网页,然后在顶部的网址栏中添加<answer tick="false" vote="-2"> <p>javascript:[你的脚本]</p> <p>例如</p> <p>javascript:alert(“你好世界!”);</p> <p> </p></answer>

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.