Regex 用于表单验证的ReqEx表达式

Regex 用于表单验证的ReqEx表达式,regex,xss,Regex,Xss,我试图将表单验证添加到我的html站点,以防止xss注入攻击 我正在使用一个简单的java表单验证程序genvalidator_v4.js,它允许我使用正则表达式来确定文本框中允许的内容。我正在尝试编写一个可以防止“”或任何其他可能用于此类攻击的标记,但仍然允许使用字母数字、标点符号和其他特殊字符的标记 有什么想法吗?也可以使用其他防止xss攻击的方法,但我在这方面非常缺乏经验,因此请尽量简单。您正在尝试将危险输入列入黑名单。这是非常棘手的,很容易出错,因为大量的代币可能是危险的 因此,建议采用

我试图将表单验证添加到我的html站点,以防止xss注入攻击

我正在使用一个简单的java表单验证程序genvalidator_v4.js,它允许我使用正则表达式来确定文本框中允许的内容。我正在尝试编写一个可以防止“”或任何其他可能用于此类攻击的标记,但仍然允许使用字母数字、标点符号和其他特殊字符的标记


有什么想法吗?也可以使用其他防止xss攻击的方法,但我在这方面非常缺乏经验,因此请尽量简单。

您正在尝试将危险输入列入黑名单。这是非常棘手的,很容易出错,因为大量的代币可能是危险的

因此,建议采用以下两种做法:

  • Escape将从数据库读取的所有内容输出到网页上之前。如果您正确地对所有内容进行HtmlEncode(您选择的语言肯定有一个库方法),那么用户是否输入了
    /*做了坏事*/
    ,并且该代码存储在您的数据库中并不重要。正确编码,这将只是逐字打印,不会造成任何伤害


  • 如果您仍然想过滤输入(这可能是一个额外的安全层),白名单通常比黑名单更安全。因此,不要说
    genvalidator_v4.js似乎不是用Java编写的,是吗?你不能指望客户端验证来防止XSS攻击。您需要使用服务器端代码,可能需要与客户端验证结合使用。好的,我想使用您的第一种方法,但是我找不到任何指南来告诉我如何做。我没有DB,因为我的站点只是简单的html页面,其中一个页面上有问题的表单。我将如何在这样一个简单的站点上实现您的第一个方法?我只是希望我的站点不易受到跨站点脚本攻击,因此任何具有此效果的解决方案都已足够。您如何处理表单数据?这将导致发送带有顺序信息的电子邮件XSS攻击的工作原理如下:攻击者确保您将其脚本数据放在您的网页上。通常情况下,攻击者以某种web形式输入脚本,web应用程序在网页上打印这些数据而不显示这些数据。由于您的应用程序从未在网页上显示用户输入的任何数据,因此我根本看不出XSS是如何发生的。