POST TIME:2021-05-23 01:16
織夢搜索經常會后臺看到這個搜索提交的廣告和qq號什么的,但是有不規律,無法做到完全屏蔽,但發現可以使用正則匹配來解決這些問題
修改代碼如下
打開plus/search.php文件 大約行數73行到77行
if($cfg_notallowstr !='' && preg_match("#".$cfg_notallowstr."#i", $keyword)) { ShowMsg("你的搜索關鍵字中存在非法內容,被系統禁止!","-1"); exit(); } |
添加如下代碼
/*防止惡意添加輸入不帶http:網址url*/ if(preg_match('/w+([-.]w+)*.w+([-.]w+)*/i', $keyword)){ ShowMsg('禁止輸入網址地址','-1'); exit(); } /*防止惡意添加輸入郵箱地址url*/ if(preg_match('/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/i', $keyword)){ ShowMsg('禁止輸入郵箱地址','-1'); exit(); } /*防止惡意添加手機廣告的電話號碼url*/ if(preg_match('/^w+$/i', $keyword)){ ShowMsg('禁止輸入英文、數字、下劃線組成特殊字符串','-1'); exit(); } /*防止惡意添加手機廣告的電話號碼url*/ if(preg_match('/^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/i',$keyword)) { ShowMsg('禁止輸入數字和手機號','-1'); exit(); } /*防止惡意輸入非法網址url*/ $guize= '/^(http|https|ftp):\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\&;:+!]*([^<>\&;])*$/'; if(preg_match($guize,$keyword)) { ShowMsg('禁止輸入網址地址','-1'); exit(); } |
帶來的價值如下
可以防止通過搜索入口,來發布廣告和寫入特殊字符,給網站少些麻煩,多些真實數據
下一篇: 織夢php漢字字符串中間插入換行符方法