我有一个由asp.net 开发的web项目
在我的网络项目中,我有一个名为(MainPage(的页面。在主页中,根据查询字符串,最后一个用户可以看到调查编辑表单(www.a.com?实体=survey@op=编辑(或参数插入表单(www.a.com?entity=参数&op=添加(等…
上面的查询字符串示例只是示例,因为我对它们进行了加密,实际上最后一个用户在url 上看到了一些复杂的单词
例如:www.a.com?saşlfas571=sflkmlm11sd&13kjn13=1378183
此外,在MainPage中,我加载了一个名为MainPageJs的javascript,它会根据查询字符串显示正确的js代码。
我正在MainPage.cshtml 中加载MainPageJs
@section scripts{
<script type="text/javascript" src="@CustomUrl.CustomAction("MainPageJS", "Home", new { entity= entityName, op = opName })"></script>
}
下面的代码显示了MainPageJs如何工作
....
string res = "";
if (queryString == "parameter")
{
res = "var a = 1;";
}
if (queryString == "survey")
{
res = "var a = 2;";
}
if (queryString == "user")
{
res = "var a = 3;";
}
return JavaScript(res.ToString());
现在我想知道的是,
- 我的代码样式有任何安全问题吗
- 我的网页有任何安全漏洞吗
- 此样式是否存在JavaScript代码注入漏洞
我的代码样式有安全问题吗?
否。在客户端上执行的动态代码没有什么问题。至少从安全的角度来看(你仍然应该控制它的性能(
我的网页是否存在安全漏洞?
否。在客户端执行动态代码时,不能破坏任何内容。"动态"代码在同一个沙箱中执行,具有与普通js相同的权限。
这种风格是否存在javascript代码注入漏洞?
有些人使用术语"JavaScript注入攻击"来命名$( userInput ).insertAfter( .. );
的副作用,当用户可以从用户的输入中运行一些JavaScript时(如果userInput
包含<script>...</script>
(,但它与动态JS无关,它更多的是关于动态HTML。
Does my code style have any security problems?
Does my web page have any security vulnerability?
Does this style have a JavaScript code injection
vulnerability?
这完全取决于您的ASP代码实现从你的问题来看,我看不出有什么大的安全问题。然而如果你不熟悉漏洞或安全性,我不建议你使用代码风格。
以下是一些原因。
您已将URL公开。即使你对它进行了编码,一些躲避者也会试图破解它。例如,从不同的URL,黑客可以解码它。我宁愿把它藏起来,不给他们机会。您还可以使用URL作为搜索引擎的可读资源。
如果您不使用框架,您可能需要实现参数过滤器以防止注入攻击(SQL、JS(。这需要时间。
很难维护代码。由于您的代码与ASP和JS混合在一起,当您的代码更大时,尤其是当您在ASP代码中使用JS处理类似View的HTML时,会变得更加困难。
如果您正在加密客户端,则用户可以在加密应用程序之前实际查看发送到应用程序的内容。有一些工具可以监控客户端活动(如YSlow(,具有技术专长的恶意用户可以使用它来检测可能的前端漏洞。记住永远不要相信用户的输入,允许用户在应用程序中传递注入代码从来都不是一个好选择。