【发布时间】:2010-04-14 21:12:17
【问题描述】:
我最近发现了一个网站,其中电子邮件地址包含在 html 表单的隐藏标签中。这是一种不好的做法吗?除了窃取邮件地址之外,为什么?
【问题讨论】:
-
你说的是网站的联系邮箱吗?
-
是要求用户填写的表格,还是隐藏了整个表格?能发个链接吗?
-
类似于
我最近发现了一个网站,其中电子邮件地址包含在 html 表单的隐藏标签中。这是一种不好的做法吗?除了窃取邮件地址之外,为什么?
【问题讨论】:
这是一种不好的做法。
恶意用户可以使用Firebug 之类的工具来更改隐藏字段的内容。
然后,他可以使用您的表单发送垃圾邮件或发送匿名电子邮件,例如。
【讨论】:
这是使用会话存储电子邮件值用于特定目的的替代方法。
【讨论】:
假设,一个名为“to”的字段包含正在联系的组织的电子邮件地址。由于这不会因客户而异,因此不应成为表格的一部分;它应该是表单目标脚本的一部分。
即使“收件人”电子邮件有些可变(例如网站管理员、技术服务、销售、投诉部门等的有限列表),表单也不应包含目标电子邮件。它应该包含一个下拉发送到列表,其中选项值是整数,脚本使用这些整数来确定哪个电子邮件地址是合适的。除了安全问题之外,像上面描述的那样的选项列表很容易从数组中生成。因此,对您的电子邮件列表进行更改很容易。
将电子邮件地址保留在联系表单之外有助于防止盗用您的表单发送垃圾邮件。它还可以使您的电子邮件地址不被网络抓取工具保护。
【讨论】:
<option value='1'>webmaster</option>。不会牺牲可读性,并且验证整数比验证字符串更容易且更便宜。
<option value="wm">webmaster</option> - 这样当人们阅读(或编写)处理所选值的代码时,可以轻松记住(或推断)该值的含义.
这只是一种跟踪必须在某处需要的电子邮件地址的方法。既然他们自己查不出来你的email地址,我想你之前已经在系统中输入过,所以我不会称之为窃取。
至于实践,我不是隐藏字段的忠实粉丝,因为它们很容易更改,但如果需要,它可以完成工作。当然,您需要在后端进行各种数据验证,将隐藏字段视为用户输入。
【讨论】:
什么邮箱地址在哪里?
表单将被提交到的电子邮件地址?它不是很干净,但没有什么可怕的。 (如果服务器端表单处理程序没有根据白名单检查电子邮件地址,那么这就是垃圾邮件中继的邀请,这是可怕的)。
用户在上一页输入的电子邮件地址?没问题,这只是维护状态,它不能被窃取 - 只有首先进入它的用户才能看到它。(这一半的答案已删除响应 cmets)
【讨论】: