Kur*_*ula 15 html code-analysis fortify
我有web应用程序,我用文件名称引用域名.我在哪里可以添加这些域名并从中调用它们.当我运行像fortify这样的工具来检查安全问题和标准时,它始终警告我不要保留硬编码的域名.什么是最好的选择,比如我在哪里可以从Web应用程序端(非数据库)存储和检索这些主域名?
我正在使用visual studio并致力于asp.net核心mvc应用程序.
以下是一个示例示例
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.1.221/styles/kendo.common.min.css" />
Run Code Online (Sandbox Code Playgroud)
其他例子
<environment exclude="Development">
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
Run Code Online (Sandbox Code Playgroud)
使用Fortify等工具解决安全警告时,了解警告背后的原因非常重要,这样才能正确地缓解这些警告.
HTML警告中的硬编码域
Fortify推断这个"HTML中的硬编码域"警告是链接到外部域会损害您网站的安全性,因为您链接的文件可以更改.以下内容来自"Fortify Taxonomy:软件安全错误":
抽象
包含来自其他域的脚本意味着此网页的安全性取决于其他域的安全性.
说明
包括来自其他网站的可执行内容是一个冒险的主张.它将您站点的安全性与其他站点的安全性联系起来.
示例:考虑以下
<script>标记.Run Code Online (Sandbox Code Playgroud)<script src="http://www.example.com/js/fancyWidget.js"/>如果此标记出现在除此之外的网站上
www.example.com,则该网站依赖于www.example.com提供正确和非恶意代码.如果攻击者可以妥协www.example.com,那么他们可以改变内容fancyWidget.js以破坏网站的安全性.例如,他们可以添加代码fancyWidget.js来窃取用户的机密数据.
攻击缓解
有两种方法可以解决这个问题:
<script>和<link>标记,如下面的Mozilla Foundation(MDN)所述.这也将阻止浏览器执行已修改的远程脚本.子资源完整性(SRI)是一种安全功能,使浏览器能够验证他们获取的文件(例如,来自CDN)是否在没有意外操作的情况下传递.它的工作原理是允许您提供所提取文件必须匹配的加密哈希.
SRI integrity属性的示例如下所示,并由许多CDN使用.
<script src="https://example.com/example-framework.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)
理想情况下,Fortify应该支持SRI作为有效的缓解技术,但如果他们不这样做,他们仍然会标记这些错误,您需要手动检查并通过任何已经减轻的警告.
最佳选择
"最佳"选项取决于您的要求.以下是一些想法:
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |