簡體   English   中英

PHP函數checkdnsrr()的優缺點

[英]The pros and cons of PHP's function checkdnsrr()

我目前正在閱讀HEAD FIRST PHP和MySQL。 我正在教如何驗證電子郵件這一章。 本書教您使用正則表達式檢查電子郵件的本地名稱部分,並使用PHP的內置函數checkdnsrr檢查域部分。 如果域有效,則電子郵件將有效,反之亦然。

我剛剛嘗試了Apple和GitHub注冊驗證,發現他們沒有以這種方式驗證電子郵件字段。 我想知道這是否可行? 我個人認為這是一個好方法,但是,如果是這樣,為什么像蘋果這樣的大公司不使用它呢?

我很高興聽到您的不同看法。

驗證電子郵件地址有很多問題:

  • 規定什么構成有效地址的RFC非常復雜,部分自相矛盾,相互取代,因此,實際上編寫既過高驗證又未過驗證的代碼介於頸痛與不可行之間。
  • 即使您根據規范完美地驗證了地址,並且檢查了域是否存在,您仍然不知道該地址是實際存在還是正在使用。 唯一了解這種情況的方法是嘗試向其發送電子郵件,然后查看郵件是否退回。 那么,為什么除了一些非常粗糙的優先過濾之外,還要首先經歷所有其他麻煩?
  • 實施過於精確的驗證需要做更多的工作。
  • 通過啟動與該DNS或SMTP服務器的網絡連接來嘗試驗證域或實際地址,可以用作DDoS攻擊媒介。 在肯定擁有服務器資源的Apple的規模上,攻擊者可能使Apple本質上具有大量偽造的電子郵件驗證請求的DDoS較小域。

鑒於以上所有內容,實際上非常簡單的檢查(例如.+@.+\\..+以清除明顯缺乏輸入的信息,然后實際嘗試發送電子郵件通常就足夠了,並且避免了誤報,復雜的實現和太多的網絡交通。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM