邮件验证

问题描述

最近发现我的网站在验证邮件上有bug,但是一直找不到原因:用户评论时,留下昵称和邮箱,如果该数据在数据库里对应的验证标记为false或者不存在同样的数据,那么就会发送一封带有邮箱地址和昵称的链接(类似mail.aspx?user=D56DFEW45DE&email=DWQE32E32DE),点击会链接到处理页面mail.aspx,在数据库中能找到对应值就将验证标记改为true。前台页面评论只显示验证标记为true的评论。======================================================为什么现在有访客的邮箱未收到验证邮件,却能通过验证呢?(验证标记已经为true)

解决方案

解决方案二:
mail.aspx?user=D56DFEW45DE&email=DWQE32E32DE你这个url这么大的明文方式,别人要攻击太容易了
解决方案三:
你将userName、email、发送日期合并成一个字符串进行加密然后作为QueryString传递,增加破解难度
解决方案四:
估计被攻击了吧
解决方案五:
谁吃饱了没事才会攻击楼主
解决方案六:
引用2楼starfd的回复:

你将userName、email、发送日期合并成一个字符串进行加密然后作为QueryString传递,增加破解难度

正解,千万不要相信客户和客户端,否则你会死的很惨

时间: 2024-08-29 13:16:05

邮件验证的相关文章

使用阿里云邮件推送服务架设自己邮件验证与推送体系

提示:阅读本文需提前了解的相关知识 1.电子邮件协议(http://baike.baidu.com/view/2367542.htm) 2.阿里云邮件推送(https://www.aliyun.com/product/directmail) 3.EDM(电子邮件营销)(http://baike.baidu.com/subview/1212416/8602812.htm) 4.SendCloud邮件服务(http://sendcloud.sohu.com/) 阅读目录结构 引: 一.需求分析 二.

Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法_php实例

本文实例讲述了Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法.分享给大家供大家参考,具体如下: Zend Framework 里Zend_Mail这个组件用起来还是很方便的..它提供了通用化的编写与发送文本内容的邮件,当然它也兼容MIME标准的多个多个段的邮件消息的功能.Zend_Mail里通过默认的Zend_Mail_Transport_SendMail传输或能过Zend_Mail_Transport_Smtp来发送我们的电子邮件. Ze

java实现邮件验证实现程序代码

在之前总结了如何用java发送邮件,java实现数据库连接池和java的properties类的使用,对于实现这个需求我们就有了足够的技术储备,现在我们需要的就是如何把这些技术综合起来. 需求:我们的用户忘了密码,需要发送一个修改密码的链接到他的邮箱里去,用户点击链接便可 以修改密码. 总体思路: 当用户申请邮箱验证时,生成一个和用户名和当前时间绑定的md5值,存入验证数据库,同时将这个值拼接成验证连接发送到用户邮箱,当用户链接时和验证数据库的md5值比对,如果一致就给予用户修改密码的权限,同时

MVC验证02-自定义验证规则、邮件验证

原文:MVC验证02-自定义验证规则.邮件验证 本文体验MVC自定义验证特性,来实现对邮件的验证.对于刚写完的自定义验证特性,起初只能支持后端验证.如果要让前端jquery支持,还必须对jquery的验证进行扩展. 本文与"MVC验证01-基础.远程验证"相关,如有需要,请参考.    当我们验证有关Email属性的时候,我们可能这样写: [RegularExpression(@"\w.+\@\w.+")] public string Email { get; se

php通过smtp邮件验证登陆的方法_php技巧

本文实例讲述了php通过smtp邮件验证登陆的方法.分享给大家供大家参考,具体如下: 内网的系统为了统一账号,都采用用邮件账号登陆的方式,所以有了以下程序 /** * 通过邮件 验证登陆 * 这里要明白的是用户名是 带域名的:aaa@163.com */ function valideEmailLogin($user, $pass, $smtp_server= 'smtp.163.com', $port=25) { $handle = fsockopen($smtp_server, $port)

php 邮件验证与图片正则表式程序

php 邮件验证与图片正则表式程序 function emailcheck($email) {  $ret = false;  if(strstr($email, '@') && strstr($email, '.'))  {   if(preg_match("/^([_a-z0-9]+([._a-z0-9-]+)*)@([a-z0-9]{1,}(.[a-z0-9-]{2,})*.[a-z]{2,4})$/i", $email))    $ret = true;   i

史上最复杂的验证邮件地址的正则表达式

用正则表达式验证邮件地址似乎是一件简单的事情,但是如果要完美的验证一个合规的邮件地址,其实也许很复杂. 邮件地址的规范来自于 RFC 5322 .有一个网站 emailregex.com 专门列出各种编程语言下的验证邮件地址的正则表达式,其中很多正则表达式都是我听说过而从未见过的复杂--我想说,做这个网站的程序员是被邮件验证这件事伤害了多深啊! 其实,在产品环境中,一般来说并不需要这么复杂的正则表达式来做到99.99%正确.一般来说,从执行效率和测试覆盖率来说,只需要一个简单的版本即可: /^[

js正则表达式验证邮件地址_javascript技巧

我们最经常遇到的验证,就是电子邮件地址验证.网站上常见.各种网页脚本也都常用"正则表达式"(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法.有的还能分解出用户名和域名.现在用JavaScript语言实现一下电子邮件地址验证程序,用的是JavaScript语言的正则表达式库. 效果图: 不合法的情况: 合法的情况: 源代码如下,该网页已在IE.Firefox.Chrome上验证通过: <!DOCTYPE html PUBLIC "-/

php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)_php技巧

本文实例需要验证的内容:邮件地址.Url地址.电话号码.邮政编码,验证方法分享给大家供大家参考,具体内容如下 1.电子邮件地址的校验 <?php /* 校验邮件地址*/ function checkMail($email) { //用户名,由"\w"格式字符."-"或"."组成 $email_name= "\w|(\w[-.\w]*\w)"; //域名中的第一段,规则和用户名类似,不包括点号"." $