Nodrošiniet savu PHP kodu

  • Ir svarīgi nodrošināt drošus datus no lietotājiem (veidlapām un URL), izņemot OS serveri un http serveri, galvenokārt tīmekļa uzbrukuma dēļ.
  • Lai aizsargātu php kodu, ir 3 kategorijas:

Datu lietotāju apstiprināšana

Ja vietne piedāvā veidlapas, kas ļauj lietotājiem uztvert un nosūtīt saturu, tas nav pietiekams, lai norādītu ierakstu formātu (e-pasta adrese, tālruņa numurs, produktu daudzums) Serveris arī būtu jāuzrauga (piemēram, PHP), ja dati ir parastie mūsu cerībām. Ņemot vērā veselos skaitļus, konvertējiet visus lietotāja nosūtītos datus:

Apstipriniet datus no URL vai veidlapām

Gandrīz visi saņemtie dati ir no URL vai veidlapām, ko izveidojis tīmekļa pārzinis. Gandrīz visi URL rādīšanas parametri, kas norādīti šādi:

/index.php?rub=25

Tomēr šis parametrs nav jāmaina. Bet tas ir iespējams, kā norādīts tālāk:

 /index.php?rub=0 /index.php?rub= /index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+or+1 
  • Ir svarīgi pārbaudīt, vai formātā, kas saņemts, izmantojot URL vai veidlapu, ir sagaidāma jebkāda veida dati.
  • Varat izmantot funkciju filter_input (), lai to pārbaudītu.
  • Piemēram, ja saņēmāt e-pasta ziņojumu no lietotāja formāta ziņojuma ar lauka nosaukumu kā e-pastu. To var atgūt, izmantojot:

 $ email = filter_input (INPUT_POST, "e-pasts", FILTER_VALIDATE_EMAIL); ja ($ email) {// E-pasta adreses ieraksts tiešām ir pasta adreses formāts} 

Šī funkcija var filtrēt daudzas lietas: IP adrese, URL utt. Pirms nosūtīšanas caur URL kā procesu ar htmlentities () var būt tādas izmaiņas kā kodēšanas virkne.

  • Izmantojot "|", var kombinēt vairākus filtrus. .
  • Lai validētu IP adresi tikai IP formātā:

$ ip = filter_input (INPUT_GET, 'ip', FILTER_VALIDATE_IP | FILTER_FLAG_IPV4);

Noklikšķiniet uz šādas saites filtriem:

//www.php.net/filter

Izlaist redzamo URL saturu

Kad ekrānā tiek parādīts lietotāja ievadītais saturs, tas satur HTML vai JavaScript kodu, kas tomēr padara aizsardzību obligātu.

Ja saturs tiks parādīts html: jums ir HTMLencode iestatījums, lai pārvērstu visas rakstzīmes ekvivalentos HTML objektos. Tālāk ir sniegta php funkcija, lai automatizētu šo procesu:

echo htmlentities ($ _ REQUEST ['content']);

Ja saturs ir jānorāda URL: jums ir jāieraksta saturs.

PHP kodēšanai ir divas funkcijas: urlencode () un rawurlencode (). Starpība starp šīm divām funkcijām ir tādas zonas kodēšana, kas pirmajā funkcijā dod un nodrošina otrajā daļā% 20 un "+".

 echo '//www.website?valeur='.urlencode($_REQUEST [' vērtība ']); 

Ja saturs ir jāglabā datubāzē, ir jāizvairās no visām rakstzīmēm, kurām ir īpaša nozīme datu bāzes serverī. PHP un MySQL funkcijai mysql_escape_string () visas potenciāli kaitīgās rakstzīmes virknē tiek nodotas kā parametrs.

 $ query = 'SELECT id FROM matable WHERE user = "'. mysql_escape_string ($ _ REQUEST ['user']). '"'; 

Ņemiet vērā, ka serveris ir konfigurēts ar PHP opciju magic_quotes, lietotāju pārsūtītie dati tiek automātiski aizsargāti ar backslashes (backslash). Tādējādi, pirms aizsargāt mysql_escape_string, jums vajadzētu atsaukt šo pamata aizsardzību:

 $ query = 'SELECT id FROM mytable WHERE user =' 'stripslashes (mysql_escape_string ($ _ REQUEST [' user '])).' "'; 
Iepriekšējais Raksts Nākamais Raksts

Top Padomi