浏览器如何处理引号(单引号、双引号)作为表单的输入
How does the browser handle quotes (single, double) as the input to a form?
假设用户在表单中输入以下内容:
I'd like to "eat" something.
这个短语包含一个'
和两个"
。如果我直接把它写为JS字符串,我必须转义'
以防止我的字符串提前终止:
var phrase = 'I''d like to "eat" something'
当用户(或潜在的恶意行为者)将'
或"
输入到表单并将其保存到变量中时,浏览器的行为是什么?字符会自动转义吗?
编辑 16/04/14 :改这个问题。
它运行在UI中显示类型化数据所需的任何内部代码。
如果你通过JS和DOM访问数据,那么它会给你一个数据结构(字符串),这些字符在数据中表示。
如果您提交一个表单,它将对数据进行编码(根据表单元素上的enctype
属性指定的编码),并将其放入HTTP请求中。
在编写代码时,您需要担心转义具有特殊含义的字符,因为有些字符在代码中具有特殊含义。
用户输入没有特殊的意义,除非你开始把它作为代码(例如通过eval
它,或与其他代码(如SQL或HTML)混合,并把它放在某个地方,代码将被解析(如发送到数据库服务器或把它放在HTTP响应))。
在表单中输入它作为用户是没有问题的。当它被发送到服务器时,浏览器将自动对其进行编码。问题是在HTML源代码中有一个像这样的默认值:
<input type="text" value="I'd like to "eat" something"/>
必须对这些值进行编码,以使其不会破坏HTML。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在submit to sightly时将表单输入值作为参数传递给WCMUsePojo
- 单击鼠标,用MySQL数据填充html表单输入字段
- 从HTML表单发布blob的表单输入类型是什么
- 在不使用PHP的情况下将表单输入值获取到Javascript中
- 在Chrome中重新加载页面后清除表单输入值
- CasperJS填充表单-输入名称有方括号
- 表单输入字段随着溢出的文本而增长
- Highcharts:根据表单输入动态显示数据
- 如何在为表单输入分别处理$(this)和$时编写DRY代码
- 如何从AngularJS表单输入中生成一个永久变量
- 将表单输入保存到txt,弹出结果,不更改页面
- 在表单输入字段中创建默认值
- 如何根据提交表单时下拉框中的值禁用html表单输入框
- 使用jQuery延迟表单输入,并在延迟后在同一页面上显示结果
- Jquery无法找到给定表单id的表单输入
- 如何使用javascript验证在表单输入中避免负值、浮点值和十进制值
- 对表单输入执行计算
- Javascript 重复表单输入
- 使用 JavaScript 计算并添加表单输入的值