后台發現大量不知名電郵,是否人為還是有BUG

伟洪winni 2015-12-07 10:37:06

上线项目後台發現大量不知名電郵,是否人為還是有BUG
我试了用这些email去订阅,会提示格式不正确,不知道这些数据是怎么录进去的


html

<form action="download_subscription.php" method="post" name="user_form" id="user_form">
<div class="subscription-row">
<input type="text" name="email" id="email" placeholder="E-mail"/>
</div>
<div class="subscription-row">
<input type="text" name="name" id="name" placeholder="Name"/>
</div>
<div class="subscription-button">
<input class="btn-subscription" type="submit" id="dosubmit" name="dosubmit" value="訂閱"/>
</div>
</form>
<script>
$(function(){
$('#email').focus();
var ok1=false;
var ok2=false;
var emailRegex = new RegExp(/^.*@.*$/);
$("#dosubmit").bind("click",function(){

var msgError = '';
if ($('#name').val().trim().length == 0)
{
msgError += '- 必須輸入姓名\r\n';
}else{
ok1=true;
}

if($('#email').val().trim().length == 0){
msgError += '- 必須輸入電郵\r\n';
}else{
var valid = emailRegex.test($('#email').val().trim());
if (!valid) {
msgError += '- 電郵格式不正確\r\n';
} else{
ok2=true;
}
}

if(ok1 && ok2){
$('#user_form').submit();
}else{
msgError = '以下資料必須輸入或選擇:\r\n' + msgError;
alert(msgError);
return false;
}
});

});


download_subscription.php

$language=$_SESSION['cahkorghk_language'];
$submit = Submit::getinstance();

$arrlist['email'] = $_POST['email'];
$arrlist['name'] = $_POST['name'];
$arrlist['subscribed_datetime'] = date("Y-m-d H:i:s");

$r = $submit->save($language,$arrlist);



public function save($language,$arrlist){
$email = $arrlist['email'];
$sqls = sprintf("SELECT email FROM %s_newslettersubscription WHERE email = '$email'",$this->tablepre_f);
$result = $this->db->getAll($sqls);

if(!$result){
$sql = sprintf("
insert into %s_newslettersubscription
(`name`,`email`,`subscribed_datetime`) values ('%s','%s','%s')",$this->tablepre_f, $arrlist['name'], $arrlist['email'], $arrlist['subscribed_datetime']);
$this->db->query($sql);
$id = $this->db->insertID();
if($id){
if($language == "tc"){
echo "<script>alert('訂閱成功!');history.go(-1);</script>";
}elseif($language == "en"){
echo "<script>alert('Subscribed successfully!);history.go(-1);</script>";
}
}else{
if($language == "tc"){
echo "<script>alert('訂閱失敗!');history.go(-1);</script>";
}elseif($language == "en"){
echo "<script>alert('Subscription failure!');history.go(-1);</script>";
/*echo "<script>self.location=document.referrer;</script>";*/
}
}
}else{
if($language == "tc"){
echo "<script>alert('此電郵已被登記,請重新填寫!');history.go(-1);</script>";
}elseif($language == "en"){
echo "<script>alert('This email address has been registered, please enter again!);history.go(-1);</script>";
}
}
}
...全文
129 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商众筹 2015-12-07
  • 打赏
  • 举报
回复
引用 2 楼 qq_20203755 的回复:
[quote=引用 1 楼 wander_wind 的回复:] 看代码像是在页面前端用js验证的邮箱格式,但只要对方直接向php发包就跳过了 前端需要做友好性验证,后端做安全性验证
邮箱格式也要在php里验证?[/quote] 是的,如果你不希望数据库里存一些恶心的代码的话
伟洪winni 2015-12-07
  • 打赏
  • 举报
回复
引用 1 楼 wander_wind 的回复:
看代码像是在页面前端用js验证的邮箱格式,但只要对方直接向php发包就跳过了 前端需要做友好性验证,后端做安全性验证
邮箱格式也要在php里验证?
智商众筹 2015-12-07
  • 打赏
  • 举报
回复
看代码像是在页面前端用js验证的邮箱格式,但只要对方直接向php发包就跳过了 前端需要做友好性验证,后端做安全性验证
一起混吧 2015-12-07
  • 打赏
  • 举报
回复
仅仅在客户端验证是不够的,在php中也做一些验证才行。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧