我想在Angular2 +中创建一个安全的表单,使用sanitize或类似的东西,但我尝试它并且清理不适用于表单。
我想检测脚本等等。
我试过了:
let title = form.title;
console.log("TITLE", title) // title that I enter in my input
title = this._sanitizer.sanitize(SecurityContext.HTML, title);
console.log("after title", title)
但它不能像我想的那样工作,因为如果我输入带有重音符号(áéíóú)或¿?的单词,它会返回:
我想获得与输入数据相同的信息,但是如果我输入一个脚本,我可以检测到它不能保存或不在我的输入中执行。
答案 0 :(得分:0)
您可以通过一些方法来实现您的目标。清理不会过滤您的输入数据,因为这不是它的使用。
1)您可以创建一个PIPE,它只允许用户输入输入文本,例如某个字符。如果只是检查你输入的ascii键是否在某个范围内(例如48-122包括所有数字,字母A-a到Z-z)。
2)使用与第1点相同的逻辑,但不是创建PIPE,而是创建一个返回字符串" sanitized"如你所愿,或者如果有一些错误的字符就显示一条消息。
3)这一点可能是偏离主题的。但是如果你必须将数据发送到网络服务器,只需确保删除某些字符(例如',",!,=,IE:注入)并使用后端语言&#39 ; s功能正确"消毒"文本。
无论如何,默认情况下没有任何内容允许您只键入某些字符或类似字符。你必须编写一些代码。你没有写出你真正想做的事情,但我建议你看一下角度的默认PIPE,这对于做各种各样的动作非常有用。