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

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

如何防止對我的 Laravel/Lumen api 的自動請求?

如何防止對我的 Laravel/Lumen api 的自動請求?

PHP
白豬掌柜的 2023-11-04 20:50:21
所以,我打算將我的后端與前端完全分離。我正在學習 Laravel/Lumen API,我打算以 JSON 格式返回數據庫數據以供前端開發人員使用。我在 Stack Overflow 上讀過幾個類似的帖子,并觀看了一些 YouTube 視頻。他們中的大多數人建議我應該為“授權”用戶生成一個令牌。然而問題是我的項目沒有登錄系統。我的所有用戶都是訪客用戶。因此,我不能先授權一個人,然后為他們生成令牌。據我了解(可能有缺陷),Laravel API 遵循 RESTful 系統。因此,它是無狀態的,我無法使用 CSRF 令牌來檢查請求是否來自提交的表單,并且它不是自動化的。那么,我還有什么其他選擇呢?我想要將自動請求與來自表單的請求分開的原因是,有時我必須對某些請求進行繁重的處理,并且我不希望自動腳本發送大量請求并導致 DOS 攻擊。任何幫助表示贊賞。
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

速率限制可以幫助防止自動腳本。Laravel 默認通過 Throttle 中間件實現此功能。默認油門比例為 60:1,throttle:60,1如果 1 分鐘內記錄了 60 次嘗試,則轉換為油門。


該中間件適用于所有路由,但是,您可以針對各個路由覆蓋此中間件并定義嘗試次數和時間的自定義值。以下示例改編自文檔,如果 1 分鐘內有 30 次嘗試,則配置限制路由:


Route::middleware('auth:api', 'throttle:30,1')->group(function () {

    Route::get('/user', function () {

        //

    });

});

還有其他配置選項,請參閱文檔以獲取更多信息。


https://laravel.com/docs/7.x/routing#rate-limiting


Laravel 如何檢查訪客用戶是否發送了太多請求?


用非常基本的術語來說,Laravel 通過應用程序緩存中的特定 IP 來跟蹤特定端點/域的命中。請求域和IP用作緩存鍵。每次命中端點時,存儲在緩存中的嘗試次數都會增加。如果在路由應用的配置中指定的時間窗口內嘗試次數達到允許嘗試的最大次數throttle,則該 IP 將被鎖定一段時間。


如果時間窗口內沒有新的點擊,嘗試將自動清除。


查看完整回答
反對 回復 2023-11-04
  • 1 回答
  • 0 關注
  • 198 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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