ale*_*lex 18
是的,因为在某个阶段您需要访问输入的原始输入.这是因为...
我确实看到了你从不想输入HTML的观点.你还用什么去剥离HTML标签?如果它是正则表达式,那么请留意可能输入类似内容的混淆用户...
3<4 :->
Run Code Online (Sandbox Code Playgroud)
3如果它是一个正则表达式,他们只会得到它.
假设您有文本R&B,并将其存储为R&B. 如果有人搜索R&B,它不会与搜索 SQL 匹配:
SELECT * FROM table WHERE title LIKE ?
Run Code Online (Sandbox Code Playgroud)
对于相等、排序等也是如此。
或者,如果有人搜索life span,它可能会返回与转义的无关的匹配项<span>。虽然这有点正交,但可以通过使用 Elasticsearch 等外部服务或将原始文本版本存储在另一个字段中来解决;类似于@limscoder 的建议。
如果您通过 API 公开数据,消费者可能不会期望数据被转义。添加文档可能会有所帮助。
几个月后,一名新的团队成员加入。作为一名训练有素的开发人员,他总是使用 HTML 转义,现在只看到所有内容都是双重转义的(例如,标题显示为类似He said "nuff"而不是He said "nuff")。
一些转义函数有附加选项。在取消转义时忘记使用相同的函数/选项可能会导致与原始值不同的值。
当多个开发人员/消费者处理相同的数据时,更有可能发生这种情况。
| 归档时间: |
|
| 查看次数: |
7515 次 |
| 最近记录: |