Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 逃避有害字符/净化用户的标准方法是什么;用JS输入什么?_Javascript - Fatal编程技术网

Javascript 逃避有害字符/净化用户的标准方法是什么;用JS输入什么?

Javascript 逃避有害字符/净化用户的标准方法是什么;用JS输入什么?,javascript,Javascript,在阅读了大量文章和StackOverflow回复后,我仍然不知道处理用户输入的行业标准方法是什么(textarea和input type=“text”)。我该如何逃离魔咒?应该剥离/替换什么以及如何剥离/替换JSON,以便JSON不会中断,特别是当用户可以复制粘贴一些最奇怪的字符时 我很久以前提出的令人怀疑的解决办法是: String.prototype.escapeChars = function () { return this.replace(/\&/g, '&

在阅读了大量文章和StackOverflow回复后,我仍然不知道处理用户输入的行业标准方法是什么(textarea和input type=“text”)。我该如何逃离魔咒?应该剥离/替换什么以及如何剥离/替换JSON,以便JSON不会中断,特别是当用户可以复制粘贴一些最奇怪的字符时

我很久以前提出的令人怀疑的解决办法是:

String.prototype.escapeChars = function () {
 return this.replace(/\&/g, '&')
.replace(/\n\r?/g, '
')
.replace(/\n/g, '
')
.replace(/\r/g, '
')
.replace(/\s/g, ' ')
.replace(/\</g, '&#x3c;')
.replace(/\"/g, '&#34;')
.replace(/\'/g, '&#39;')
.replace(/\>/g, '&#x3e;')
.replace(/\\/g, '&#x27;')
.replace(/[^\x00-\x7F]/g, '');
};
String.prototype.escapeChars=函数(){
返回此。替换(/\&/g,&;'))
.替换(/\n\r?/g,
;'))
.替换(/\n/g,
;)
.替换(/\r/g,
;)
.替换(/\s/g, ;)
.替换(/\
处理用户输入的行业标准方法是什么

为目标数据格式使用适当的库

应该剥离/替换什么以及如何剥离/替换JSON,以便JSON不会中断,特别是当用户可以复制粘贴一些最奇怪的字符时

没什么。只要使用它,它就能处理任何扔到它身上的东西

例如,如果将数据发送到需要JSON输入的web服务:

const name = $('input[name=name]').val();
const address = $('input[name=address]').val();
const ajax = jQuery.ajax({
    method: "POST",
    url: "http://example.com/endpoint",
    contentType: "application/json",
    data: JSON.stringify({ name, address })
});
ajax.then(data => console.log(data));
我很久以前提出的令人怀疑的解决办法是


这看起来像是为转换成HTML而设计的,而不是JSON。

检查一下这一点前端清理有意义的小案例。你应该在服务器端进行,原因很简单,你不能确定你接收到的数据是否符合你的脚本,也不能确定它是否来自web浏览器…@kaido这些案例是什么前端消毒的意义何在?感谢您+1的“适合目标格式”什么是合适的库示例?正如我在回答中所说的,JSON.stringify.thank you。我可以问您另一个问题吗?->在将数据发送到服务器之前,js是否应该替换&,以及“?还是把它留给服务器端?我想不出有多少情况下我会这样做,除非我使用的是SOAP API……如果可能的话,我会尽量避免这样做。”。