Блокировать POST-запрос, содержащий конкретные слова - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу заблокировать запрос POST, если он содержит определенные слова.

Можно ли добиться этого с помощью файла htaccess или брандмауэра CSF?

В обоих случаях я не знаю, как получить доступ к содержимому POST-запроса, чтобы заблокировать его!

1 Ответ

0 голосов
/ 02 ноября 2019

Когда вы говорите о почтовом запросе, вы должны указать запрос, в котором он хранит строку, например: index.php?myquery=word1 <= <strong>word1 - это почтовый запрос, или мы называем его Строка запроса

1. Используя Htaccess:

НЕ забудьте изменить myquery= на ваш

# Block Specific Queries
<IfModule mod_rewrite.c>
RewriteEngine On

#These lines Blocks word1
RewriteCond %{QUERY_STRING} \myquery=word1\b [NC]
RewriteRule ^ - [F]

#These lines Blocks word2
RewriteCond %{QUERY_STRING} \myquery=word2\b [NC]
RewriteRule ^ - [F]

</IfModule>

2. Использование PHP:

Вам необходимо добавить этот код на страницу, которая получает запрос на публикацию (Вы можете проверить свой тег; где /path/to/submitpage.php - страница, на которой этот код должен быть вверху:

$action="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if (strstr($action, 'word1') OR strstr($action, 'word2') OR strstr($action, 'word3'))
{
//Return 404 for these 
header('HTTP/1.1 404 Not Found');
//Redirect to specific location
header('Location: https://example.com');
  exit;
}
//... The rest of your page code below
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...