首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果将JavaScript插入到JavaScript字符串中,是否可以进行JavaScript注入?

如果将JavaScript插入到JavaScript字符串中,是否可以进行JavaScript注入?
EN

Stack Overflow用户
提问于 2014-03-13 20:03:58
回答 1查看 1.5K关注 0票数 0

是否可以在以下上下文中注入和执行javascript?还是终止JavaScript字符串?

  • 将URL插入到JavaScript字符串(双引号分隔)中。
  • URL是由浏览器而不是服务器端编码的URL。(为了简单起见,只使用Firefox和Chrome)
  • URL从未被解码过(无论是在JavaScript还是后端)

示例:

代码语言:javascript
运行
复制
var baseURL = "http://example.com/?[USER CONTROLLED INPUT]";

请注意,通过提供以“JavaScript”结尾的字符串,可能会导致未终止的字符串文本\错误。假设此错误不影响其他用户输入的使用。

注意:浏览器URI编码当前是不同的。

给定以下URL:

代码语言:javascript
运行
复制
example.com?!*'();:@&=+$,/?[]"%-.<>\^_`{|}~#
  • FireFox 27.01提交: %60{|}~#
  • 铬32.0提出: `{|}~#
EN

回答 1

Stack Overflow用户

发布于 2014-03-15 07:35:51

如果这是唯一的注入点,那么我必须同意您的假设,即唯一可能造成的损害是一个未终止的JavaScript字符串文本。

但是,如果有多个注入点,即三个或更多的注入点,出现在这样的一行中:

代码语言:javascript
运行
复制
var x = "[USER CONTROLLED INPUT]", y = "[USER CONTROLLED INPUT]", z = "[USER CONTROLLED INPUT]";

注入JavaScript代码是可能的:

代码语言:javascript
运行
复制
x = \
y = +alert(1)+
z = //

由于这将导致:

代码语言:javascript
运行
复制
var x = "\", y = "+alert(1)+", z = "//";

它要求注入点都在一行中,如JavaScript doesn’t allow literal line breaks in string literals

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22389683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档