亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊電子郵件中的 Outlook 安全鏈接保護鏈接似乎執行了兩次代碼

單擊電子郵件中的 Outlook 安全鏈接保護鏈接似乎執行了兩次代碼

PHP
ibeautiful 2023-04-23 17:37:36
這與編碼本身并沒有真正的關系,我的項目是在 Laravel 7.1 中,但更多的是在 Outlook 的安全測量中?;旧衔矣幸粋€功能可以發送一封包含按鈕的電子郵件,它是一個帶有令牌的鏈接和我的 Laravel 項目中執行某些操作的路由(在本例中,確認取消約會)。單擊該按鈕時,它會將用戶重定向到一個顯示消息的頁面,該頁面顯示約會已成功取消或令牌已過期(因為執行操作一次最終會從數據庫中刪除令牌,因此請嘗試再次執行此操作將失敗并顯示消息)。這在測試環境中按預期工作,單擊 Gmail 中的相同按鈕或復制并粘貼瀏覽器地址欄中的鏈接。但是對于 Outlook 及其帶有安全鏈接保護的屏蔽鏈接,無法正常工作,單擊該按鈕后,它會將用戶重定向到過期的令牌消息,但操作已按預期執行。發生這種情況是因為 safelink 正在訪問該鏈接并在讓用戶打開新選項卡之前檢查它是否安全,問題是“假”訪問正在使我的應用程序執行它通常應該執行的操作:(它取消了基于該令牌,并從數據庫中刪除令牌),因此當用戶被重定向時,這被視為對該鏈接的第二次訪問,并且用戶輸出的是過期令牌消息,這當然是誤導性的。這基本上是任何一次使用鏈接的問題,并且可能會影響其他應用程序。這是 Microsoft 最近的一項更改,因為它在幾個月前就開始工作了,safelink 并不是什么新東西,但他們引入了新的安全功能。其他郵件提供商也可能會發生這種情況,但我只是用 Gmail 進行了測試,它沒有做同樣的事情并且它有效。所以我真的不知道我能做些什么來解決這個問題,有沒有辦法檢測點擊是否來自真實用戶或其他什么?Laravel 是否采取措施來克服這個問題?
查看完整描述

3 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

Safelink保護向網站發起 HTTP?HEAD請求以獲取其計劃重寫的 URL,然后重寫電子郵件中的 URL 以通過 MS 平臺反彈。

許多 Web 應用程序處理 HEAD 請求,如GET請求。如果這種情況發生在一次性 URL 上,則 SafeLink 的 HEAD 請求會觸發操作,這意味著當瀏覽器發出“真實”請求時,鏈接已過期。

我為此使用的一個解決方案是檢查傳入請求中使用的 HTTP 方法,并且僅在它是 GET 時才對其進行操作;如果是其他情況,則返回405 Method Not Allowed狀態或類似狀態。


查看完整回答
反對 回復 2023-04-23
?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

這種行為已經存在了一段時間。您能做的最好的事情就是提供一個頁面鏈接,用戶必須在該頁面上明確單擊另一個鏈接或按鈕。



查看完整回答
反對 回復 2023-04-23
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

我已經有幾天遇到這個問題了。通過反復試驗,我剛剛通過自己的測試找到了解決方案,您只需要使用您的 outlook 帳戶設置SMTP配置。

使用 PHPMailer

我之前有這個配置

$trans = Swift_SmtpTransport::newInstance()
         ->setHost("xxxxxxxxxxx.mail.protection.outlook.com")
         ->setPort(25);

我改為

$trans = Swift_SmtpTransport::newInstance('smtp.office365.com', 587, 'tls')
         ->setUsername('xxxxx@xxxxxxx') 
         ->setPassword('xxxxxxxxxxxx');

現在,它工作正常。我認為只有當電子郵件地址(發件人)未在您的組織內驗證時,ATP aka SafeLink 保護功能才會起作用。


查看完整回答
反對 回復 2023-04-23
  • 3 回答
  • 0 關注
  • 243 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號