[操作疑難] Website如何防Bot?

我個site行緊LAMP
如果想有人1分鐘request多過30次…
就要佢入打code先可繼續…應該點樣做?
係server level 定係 php 果度做?

本帖最後由 hihihi123hk 於 2017-4-2 20:19 編輯
我個site行緊LAMP
如果想有人1分鐘request多過30次…
就要佢入打code先可繼續…應該點樣做?
係server lev ...
清仔 發表於 2017-4-2 20:08


   
Backend block for sure

正常人要 Spam 你唔會用 UI, 直接開機 Curl 你已經得

Php Cache/Redis 儲住啲 IP,多過就儲底個 IP 落blacklist, Redirect 去嗰版要佢人手入先,成功入岩先係 Blacklist 度移除

via HKEPC Ionic Reader v1.6.0 - iPhone

TOP

Backend block for sure

正常人要 Spam 你唔會用 UI, 直接開機 Curl 你已經得

via HKEPC Ionic  ...
hihihi123hk 發表於 2017-4-2 08:13 PM



暫時搵到兩個solutions:
應該走邊個approach好?兩個都係backend…
但session果個…其實CURL唔用cookies 就廢左…
----
Apache mod_bandwidth allows to control certain IPs
i.e. BandWidth <domain|ip|all> <rate>

----
<?php
$min_seconds_between_refreshes = 3;

session_start();

if(array_key_exists('last_access', $_SESSION) && time()-$min_seconds_between_refreshes <= $_SESSION['last_access']) {
  // The user has been here at least $min_seconds_between_refreshes seconds ago - block them
  exit('You are refreshing too quickly, please wait a few seconds and try again.');
}
// Record now as their last access time
$_SESSION['last_access'] = time();
?>

TOP

Backend block for sure

正常人要 Spam 你唔會用 UI, 直接開機 Curl 你已經得

Php Cache/Redis  ...
hihihi123hk 發表於 2017-4-2 08:13 PM

但IP CURL 係咪都set到假IP referral?

TOP

但IP CURL 係咪都set到假IP referral?
清仔 發表於 2017-4-2 20:20


   
Apache 嗰陣要將 Client IP 帶番 Application Level,唔可能信 User Input  

基本上任何 User Input 都唔應該相信

via HKEPC Ionic Reader v1.6.0 - iPhone

TOP

Backend block for sure

正常人要 Spam 你唔會用 UI, 直接開機 Curl 你已經得

Php Cache/Redis  ...
hihihi123hk 發表於 2017-4-2 20:13


信IP冇用
如果人地用手機上網, 一個IP可能分俾幾百甚至幾千人用
結果又會誤以為有人惡意攻擊

TOP

本帖最後由 梁炳 於 2017-4-5 13:20 編輯

要打code就係app level
除非你PHP果邊可以好快咁check到,經左層MVC framework先check的話,一樣會整慢你部機,同埋overwhelm你個web server的處理能力

web server/firewall level做效能會保證好d
可以用iptables rules或者用fail2ban
一大過某個frequency就firewall block

DDOS又係另一件事

另外,其實可以用cloudflare的,所有traffic經cloudflare
有captcha

TOP

相關文章