防止WordPress评论回复邮件提醒功能被利用群发垃圾邮件
給WordPress添加評論回復(fù)郵件提醒功能,目前已成為WordPress博客的標(biāo)配,不僅可以大大提高用戶體驗,還可以增加訪客的回頭率。
偶然發(fā)現(xiàn),這是一項很危險的功能,目前網(wǎng)上流行的代碼版本很容易被一些別有用心的人利用:
我可以給你博客的所有評論都回復(fù)一遍,不僅在你的博客留下了垃圾評論,垃圾內(nèi)容也通過評論回復(fù)提醒郵件順帶發(fā)出去了。
無需花費心思去獲取評論者的郵件地址,也不用擔(dān)心評論是否還在等待審核,垃圾廣告內(nèi)容順利發(fā)出,歐耶!
很多博客都宣揚不會泄漏評論者的email,但是如果這個bug被人利用,你的博客倒成了垃圾郵件的發(fā)送者,這豈不是很搞笑?
解決辦法
Step 1:
進(jìn)入WordPress后臺 - 設(shè)置 - 討論,勾選"評論必須經(jīng)人工批準(zhǔn)",這樣所有評論必須經(jīng)過管理員審核才能顯示,雖然有點麻煩,但是我覺得這是博主應(yīng)該負(fù)起的一項責(zé)任。
Step 2:
接著我們需要將之前的評論回復(fù)郵件提醒的代碼做些修改。
我設(shè)計的運行機制是這樣的:對于管理員和編輯的評論回復(fù),可以直接給評論者發(fā)送提醒郵件;對于普通訪客發(fā)表的評論,先讓它在待審評論中呆著,等博主審核后,再給評論者發(fā)送提醒郵件。下面是一個評論回復(fù)郵件提醒的代碼范例,使用的是所有評論回復(fù)都發(fā)送郵件通知的版本,如果你需要其他功能,請參考網(wǎng)上的代碼進(jìn)行修改:
/**
* WordPress評論回復(fù)郵件提醒防垃圾評論版
* 作者:露兜
* 博客:https://www.ludou.org/
*
* 2014年7月5日 :
* 首個版本
*/
function ludou_comment_mail_notify($comment_id, $comment_status) {
// 評論必須經(jīng)過審核才會發(fā)送通知郵件
if ($comment_status !== 'approve' && $comment_status !== 1)
return;
$comment = get_comment($comment_id);
if ($comment->comment_parent != '0') {
$parent_comment = get_comment($comment->comment_parent);
// 郵件接收者email
$to = trim($parent_comment->comment_author_email);
// 郵件標(biāo)題
$subject = '您在[' . get_option('blogname') . ']的留言有了新的回復(fù)';
// 郵件內(nèi)容,自行修改,支持HTML
$message = '
<p>Hi, ' . $parent_comment->comment_author . '</p>
<p>您之前在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br />'
. $parent_comment->comment_content . '</p>
<p>' . $comment->comment_author . ' 給您回復(fù):<br />'
. $comment->comment_content . '<br /><br /></p>
<p>您可以 <a href="' . htmlspecialchars(get_comment_link($comment->comment_parent)) . '">點此查看回復(fù)完整內(nèi)容</a></p>
<p>歡迎再度光臨 <a href="'.home_url().'">' . get_option('blogname') . '</a></p>
<p>(此郵件由系統(tǒng)自動發(fā)送,請勿回復(fù))</p>';
$message_headers = 'Content-Type: text/html; charset="' . get_option('blog_charset') . '"\n';
// 不用給不填email的評論者和管理員發(fā)提醒郵件
if($to != '' && $to != get_option('admin_email'))
@wp_mail($to, $subject, $message, $message_headers);
}
}
// 編輯和管理員的回復(fù)直接發(fā)送提醒郵件,因為編輯和管理員的評論不需要審核
add_action('comment_post', 'ludou_comment_mail_notify', 20, 2);
// 普通訪客發(fā)表的評論,等博主審核后再發(fā)送提醒郵件
add_action('wp_set_comment_status', 'ludou_comment_mail_notify', 20, 2);
最后,還是希望看過這篇文章的網(wǎng)友不要去干壞事哦。
本文轉(zhuǎn)自:露兜博客https://www.ludou.org/wordpress-no-spam-comment-mail-notify.html
總結(jié)
以上是生活随笔為你收集整理的防止WordPress评论回复邮件提醒功能被利用群发垃圾邮件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: phpcms v9 调用全站点击率最高的
- 下一篇: WordPress添加独立的Descri