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 '])).' "';