現在的很多灰產利用搜索頁面,非法關鍵詞搜索,然後提交sitemap。
利用合法網站發佈違法廣告,以bc、色情、藥物為主。
WordPress構建的網站,除了屏蔽搜索結果頁面,也可以按以下方法屏蔽敏感字搜索。
但是我想要的是「白名單」方案,也就是說,只允許搜索「名單」內的關鍵字,如我的訴求是只允許搜索省市地名
或者只允許搜索不超過10個字符。
曾經找了好幾個晚上,都沒有找到好的辦法。
添加禁止搜索關鍵詞,可以屏蔽大多非法搜索,但是效率好像並不高,如果能夠限定搜索詞不能超過10個字符,也能屏蔽大多非法廣告。歡迎大家提供高頻高危關鍵詞。
在WordPress當前主題的functions.php,添加以下代碼,然後就可以在WordPress後台的「設置」-「閱讀」(wp-admin/options-reading.php)的「搜索關鍵詞屏蔽」,輸入屏蔽的關鍵字,一個一行。
- //屏蔽惡意關鍵詞搜索
- add_action('admin_init', 'php_search_ban_key');
- function php_search_ban_key() {
- add_settings_field('php_search_key', '搜索關鍵詞屏蔽', 'php_search_key_callback_function', 'reading');
- register_setting('reading','php_search_key');
- }
-
- function php_search_key_callback_function() {
- echo '<textarea name="php_search_key" rows="10" cols="50" id="php_search_key" class="large-text code">' .
-
- get_option('php_search_key') . '</textarea>';
- }
- add_action('template_redirect', 'php_search_ban');
- function php_search_ban(){
- if (is_search()) {
- global $wp_query;
- $php_search_key = get_option('php_search_key');
- if($php_search_key){
- $php_search_key = str_replace("\r\n", "|", $php_search_key);
- $BanKey = explode('|', $php_search_key);
- $S_Key = $wp_query->query_vars;
- foreach($BanKey as $Key){
- if( stristr($S_Key['s'],$Key) != false ){
- wp_die('請不要搜索非法關鍵字');
- }
- }
- }
- }
- }
複製代碼
- 扣
- Q
- V
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 0
- 一
- 二
- 五
- 六
- 七
- 八
- 九
- 十
- c
- 【
- │
- <
- (
- )
- (
- )
- 法
- 輪
- 政
- 共
- 產
- 黨
- 藥
- 姐
- 情
- 微
複製代碼
|