diff --git a/Rocksolid_Light/rocksolid/article-flat.php b/Rocksolid_Light/rocksolid/article-flat.php index 9567f21..8cf8afa 100644 --- a/Rocksolid_Light/rocksolid/article-flat.php +++ b/Rocksolid_Light/rocksolid/article-flat.php @@ -15,6 +15,23 @@ if(isset($_REQUEST["first"])) $first=$_REQUEST["first"]; + $logfile=$logdir.'/newsportal.log'; + if(!isset($_SESSION['starttime'])) { + $_SESSION['starttime'] = time(); + $_SESSION['views'] = 0; + } + $_SESSION['views']++; + + $rate = ($_SESSION['views'] / (time() - $_SESSION['starttime'])); + if (($rate > .15) && ($_SESSION['views'] > 5)) { + header("HTTP/1.0 429 Too Many Requests"); + if(!isset($_SESSION['throttled'])) { + file_put_contents($logfile, "\n".format_log_date()." ".$config_name." Too many requests from ".$_SERVER['REMOTE_ADDR']." requesting: ".$group, FILE_APPEND); + $_SESSION['throttled'] = true; + } + exit(0); + } + if(isset($frames_on) && $frames_on === true) { ?>