javascript - 为什么注入(inject) JavaScript 代码是个坏主意

标签 javascript asp.net security code-injection

我有一个用asp.net开发的web项目

在我的网络项目中,我有一个名为 (MainPage) 的页面。在MainPage中根据查询字符串,最后一个用户可以看到一个调查编辑表单(www.a.com?entity=survey@op=edit)或者一个参数插入表单(www.a.com?entity=parameter&op=add)或者等等……

上面的查询字符串示例只是示例,因为我对它们进行了加密,实际上最后一个用户在 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()); 

现在我想知道的是,

  1. 我的代码风格有没有安全问题?
  2. 我的网页是否存在任何安全漏洞?
  3. 此样式是否存在 JavaScript 代码注入(inject)漏洞?

最佳答案

is my code style has any security problem?

没有。在客户端执行动态代码没有错。至少从安全的 Angular 来看(你仍然应该控制它的性能)

is my web page has security vulnerability?

没有。你不能破坏任何在客户端执行动态代码的东西。 “动态”代码在同一个沙箱中执行,具有与普通 js 相同的权限。

is this style has a javascript code injection vulnerability?

有些人使用术语“JavaScript Injection Attack”来命名 $( userInput ).insertAfter( .. ); 的副作用- 当用户可以从用户输入运行一些 javascript(如果 userInput 包含 <script>...</script> )但它与动态 JS 无关,它更多地与动态 HTML 有关。

关于javascript - 为什么注入(inject) JavaScript 代码是个坏主意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53129607/

相关文章:

javascript - 将 OOP javascript 与 jQuery DOM 操作混合

javascript - 是否可以使用 chart.js 恢复折线图中的 x 轴值

javascript - HTML 到 JS 数据表 : Still show a removed row after sorting or page size change?

c# - GridView 和 ObjectDataSource 问题

web-services - 如何知道 2 个服务器之间的信息是否安全(SSL)?

windows - EFS(加密文件系统): security concern: aren't password-related hashes stored on the hard drive

javascript - 当他们在 JS 中调用它时,我如何识别我的 API 的用户?

c# - 启用 javascript wp7

c# - 为什么我必须将我的对象放入 HttpContext 缓存中两次才能永久保留它?

java - 如何在 Java 中限制 JPasswordField 中的位数?