对于已经提出的问题,我找不到完整的解决方案。 尽管攻击者可以在客户端禁用JS,但我希望在纯JavaScript中具有相同的解决方案来验证表单。服务器是Node.js。该数据库为NoSQL类型。 我有两种形式需要验证:
1)用户使用带有电子邮件和密码输入的表单通过HTTPS连接。
2),用户可以在仪表板的一部分中以以下形式创建添加:
作者(输入文本)
关键字(输入文字)
所见即所得HTML编辑器(所见即所得)。用户可以加粗,更改文本的颜色。因此,输出将是HTML,它将作为字符串存储在数据库中。
上传将保存在云的BLOB容器中的图像。
从我学到的知识,我可以使用正则表达式:
a)电子邮件
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());}
b)密码-我只能检查它是否至少包含6个字符并且是字符串类型。如何验证字符串实际上不是HTML或JavaScript?验证很重要吗?
c)作者,关键字-可能与密码相同(以检查不是HTML或JavaScript)。作者将在添加中公开,因此可以用作XSS攻击。
d)所见即所得HTML编辑器-这很棘手,因为输出是HTML。
e)图片-它们只会从云中下载。我必须在上传中进行任何验证吗?
谢谢!