Căutați o modalitate de a vă proteja site-ul WordPress de solicitări URL malițioase? Deși probabil există un plugin pentru asta, am creat o scurtă secvență de cod pe care o puteți utiliza pentru a proteja WordPress împotriva solicitărilor URL malițioase în WordPress.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul .htaccess al temei dvs.
$request_uri = $_SERVER['REQUEST_URI'];
$query_string = $_SERVER['QUERY_STRING'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
// request uri
if ( //strlen($request_uri) > 255 ||
stripos($request_uri, 'eval(') ||
stripos($request_uri, 'CONCAT') ||
stripos($request_uri, 'UNION+SELECT') ||
stripos($request_uri, '(null)') ||
stripos($request_uri, 'base64_') ||
stripos($request_uri, '/localhost') ||
stripos($request_uri, '/pingserver') ||
stripos($request_uri, '/config.') ||
stripos($request_uri, '/wwwroot') ||
stripos($request_uri, '/makefile') ||
stripos($request_uri, 'crossdomain.') ||
stripos($request_uri, 'proc/self/environ') ||
stripos($request_uri, 'etc/passwd') ||
stripos($request_uri, '/https/') ||
stripos($request_uri, '/http/') ||
stripos($request_uri, '/ftp/') ||
stripos($request_uri, '/cgi/') ||
stripos($request_uri, '.cgi') ||
stripos($request_uri, '.exe') ||
stripos($request_uri, '.sql') ||
stripos($request_uri, '.ini') ||
stripos($request_uri, '.dll') ||
stripos($request_uri, '.asp') ||
stripos($request_uri, '.jsp') ||
stripos($request_uri, '/.bash') ||
stripos($request_uri, '/.git') ||
stripos($request_uri, '/.svn') ||
stripos($request_uri, '/.tar') ||
stripos($request_uri, ' ') ||
stripos($request_uri, '<') ||
stripos($request_uri, '>') ||
stripos($request_uri, '/=') ||
stripos($request_uri, '...') ||
stripos($request_uri, '+++') ||
stripos($request_uri, '://') ||
stripos($request_uri, '/&&') ||
// query strings
stripos($query_string, '?') ||
stripos($query_string, ':') ||
stripos($query_string, '[') ||
stripos($query_string, ']') ||
stripos($query_string, '../') ||
stripos($query_string, '127.0.0.1') ||
stripos($query_string, 'loopback') ||
stripos($query_string, '%0A') ||
stripos($query_string, '%0D') ||
stripos($query_string, '%22') ||
stripos($query_string, '%27') ||
stripos($query_string, '%3C') ||
stripos($query_string, '%3E') ||
stripos($query_string, '%00') ||
stripos($query_string, '%2e%2e') ||
stripos($query_string, 'union') ||
stripos($query_string, 'input_file') ||
stripos($query_string, 'execute') ||
stripos($query_string, 'mosconfig') ||
stripos($query_string, 'environ') ||
//stripos($query_string, 'scanner') ||
stripos($query_string, 'path=.') ||
stripos($query_string, 'mod=.') ||
// user agents
stripos($user_agent, 'binlar') ||
stripos($user_agent, 'casper') ||
stripos($user_agent, 'cmswor') ||
stripos($user_agent, 'diavol') ||
stripos($user_agent, 'dotbot') ||
stripos($user_agent, 'finder') ||
stripos($user_agent, 'flicky') ||
stripos($user_agent, 'libwww') ||
stripos($user_agent, 'nutch') ||
stripos($user_agent, 'planet') ||
stripos($user_agent, 'purebot') ||
stripos($user_agent, 'pycurl') ||
stripos($user_agent, 'skygrid') ||
stripos($user_agent, 'sucker') ||
stripos($user_agent, 'turnit') ||
stripos($user_agent, 'vikspi') ||
stripos($user_agent, 'zmeu')
) {
@header('HTTP/1.1 403 Forbidden');
@header('Status: 403 Forbidden');
@header('Connection: Close');
@exit;
}
Notă: Dacă este prima dată când adăugați secvențe de cod în WordPress, consultați ghidul nostru despre cum să copiați / lipiți corect secvențe de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut această secvență de cod, vă rugăm să luați în considerare să consultați și celelalte articole de pe site, cum ar fi: cele mai bune 18 pluginuri pentru comentarii WordPress și cum să creați un formular pop-up în WordPress.
mulțumesc
Salut Kevin, este același lucru pe care îl face Secure Wordpress (http://wordpress.org/extend/plugins/secure-wordpress/), vezi elementul 11 din listă?
Nivelurile utilizatorilor au fost depreciate în WP 3.0, ar trebui să utilizați capacități sau roluri reale în verificarea dvs. current_user_can, de ex.
if ( ! current_user_can( 'administrator' ) ) {Foarte adevărat Drew, voi actualiza secvența de cod, mulțumesc!
Pot adăuga acest cod în pluginul meu functions.php?
Aș dori să văd și cod pentru protecția POST.
cel mai bun mod de a include acest lucru, găsesc că este să îl plasați în folderul mu-plugins/ dacă nu aveți unul, îl puteți crea. Acest lucru va forța pluginul să ruleze ca un plugin obligatoriu. Descărcați zip-ul de mai sus, acesta este cel mai bun mod de a-l rula,
Acest lucru va proteja doar o solicitare GET, cum ar fi index.php?name=eval(base64_decode(EVIL+CODE
Dar pe forumul Wordpress, mulți oameni sunt spionați prin solicitări Post, iar acest cod nu va proteja.
Aveți ceva similar, dar pentru POST?