防止在ASP文本框上验证超链接
Prevent Hyperlink on ASP text box validation
我试图阻止垃圾邮件发送者提交一个表单的文本框上的超链接。
表单要求用户输入他们的全名、电子邮件地址、电话号码,然后有一个框供他们输入消息。电子邮件地址和电话号码防止超链接,因为验证指定电话只能由数字组成,并且电子邮件必须包含@
。
是否有一种方法使用Javascript与ASP相结合,我可以停止提交的形式,如果它包含(http)
或(www)
。
我尝试了以下操作,但没有成功
<script type="text/javascript">
function Validate(x, y) {
str = (document.getElementById('Messagetxt')).value;
if (str.match(/(http)(www)(['<])([^'>]{1,})*(['>])/i) == null) {
y.IsValid = true;
}
else {
y.IsValid = false;
}
}
</script>
链接到文本框的自定义验证器。当我输入http
、www
或html标记< >
(我试图阻止)时,表单提交但呈现错误页面。
通常你遇到的不是黑客,而是通过你的网站的机器人。我推荐一种更简单的方法(也许也是)来欺骗机器人填充一个隐藏的字段。
在表单上放置一个样式设置为display: none;
的文本框,以及一个完全不相关的id,例如catchUnreal
。在服务器端代码中检查catchUnreal
的值,看看它是否有值。如果是,很可能是机器人已经完成了您的表单-不要提交答案:
<input type="text" id="catchUnreal" class="dontDisplay" />
...
...
<%if Request.Form("catchUnreal")<>"" then
'Do my stuff
end if%>
(如果你明白我的意思)。
—EDIT—
抱歉-我没读对。
上面的过程也可以使用JavaScript应用,只需使用JavaScript检查隐藏框的值:
if(document.getElementById("catchUnreal").value<>"") doProcessing();
——编辑——
另一个想法是使用服务器端命令server.HTMLEncode(string)
,它将删除任何不需要的标记编码。
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 用超链接替换URLS
- 使用JavaScript从超链接加载时的默认下拉值
- Hammer.js阻止在Android Webview中点击超链接
- 将超链接添加到“;标题“;标记文本
- 文本建议的超链接
- 用Javascript按钮替换Javascript超链接
- 删除默认的ui超链接行为
- 谷歌将广告超链接映射到国家标记
- 如何在点击超链接时调用fullcalendar回调
- 单击“禁用其他超链接”
- 为Angularjs制作超链接
- 指向的超链接刚刚赢得'不起作用
- 如何将超链接添加到通过传单创建的传单多段线.Draw
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- 提交前验证超链接和复选框
- 防止在ASP文本框上验证超链接
- 如何在单击提交按钮时验证超链接和复选框
- jQuery是否验证冲突提交函数,而不是表单按钮(图像/超链接)