Автор:
Оценка:
Опубликованно: 22.02.2019.
Язык: Латышский
Уровень: Университет
Литературный список: Нет
Ссылки: Использованы
Рассмотреный период: 2016–2020 гг.
  • Конспект 'Serveru drošība', 1.
  • Конспект 'Serveru drošība', 2.
  • Конспект 'Serveru drošība', 3.
  • Конспект 'Serveru drošība', 4.
  • Конспект 'Serveru drošība', 5.
  • Конспект 'Serveru drošība', 6.
  • Конспект 'Serveru drošība', 7.
  • Конспект 'Serveru drošība', 8.
  • Конспект 'Serveru drošība', 9.
  • Конспект 'Serveru drošība', 10.
  • Конспект 'Serveru drošība', 11.
  • Конспект 'Serveru drošība', 12.
  • Конспект 'Serveru drošība', 13.
  • Конспект 'Serveru drošība', 14.
Фрагмент работы

Tomēr ja ir nepieciešams lietot PHP 5.4.0 vai vecāku versiju, atkarībā no lietojamiem ietvariem (jo visi to neatbalsta), varētu apsvērt arī PHP safe mode ieslēgšanu, kas ierobežo skriptu izpildes tiesības[27].

Lai izvairītos no pārāk liela sistēmas noslogojuma (piemēram, DDoS gadījumā), jāieslēdz arī ierobežojumi, kas nepieļauj pārāk lielu individuālo skriptu izpildes laiku vai resursu patēriņu. To ir iespējams izdarīt ar max_execution_time parametru, kā arī memory_limit parametru. Vēl šeit var palīdzēt maksimālo POST pieprasījumu satura izmēru iestatīšana, ko var izdarīt ar post_max_size komandu. Līdzīgi, vajadzētu iestatīt arī maksimālo augšupielādēto failu izmēru ar upload_max_filesize.

Tāpat produkcijas kodā ir nepieciešams atslēgt kļūdu izvadi HTML, jo pretējā gadījumā ārējiem lietotājiem kļūs pieejama informācija par skripta saturu, kas var būt par lielu drošības risku (jo īpaši tad, ja nav atslēgta magic quotes funkcionalitāte).

Ja ir nepieciešamība pēc vēl lielākas drošības, pastāv iespēja konfigurācijā atslēgt individuālās PHP valodas komandas, piemēram exec(), kas atļauj palaist tekstu kā PHP koda fragmentu. To ir iespējams izdarīt ar disable_functions komandu.

Runājot par pašu programmēšanu, ļoti noderīgi būtu atcerēties, ka drošāk ir izmantot kādu no jau gatavajiem lietotāja autentifikācijas risinājumiem, piemēram, uLogin PHP[28], PHP-Auth[29], vai arī funkcionalitāti, kas pieder lielākiem ietvariem, piemēram Symfony[30], lai nav jāriskē ar tik kritiskas funkcionalitātes sliktu implementāciju neuzmanības dēļ.

Svarīga ir arī ievades datu validācija, pretējā gadījumā ļaunprātīgi noskaņoti lietotāji var izpildīt koda injekciju, piemēram, padodot teksta laukam ne tikai vērtību, bet arī SQL kodu, kas tiks izpildīts uz servera un ļaus izmainīt lietojuma darbību.

Datu bāzu gadījumā to var novērst, izmantojot PDO vai MySQLi priekš savienojuma izveidošanas[31], kas atļauj veidot sagatavotus vaicājumus, kuros injekcija nav iespējama. Lai nu kā, vajadzētu arī citviet atcerēties, ka lietotāja ievadei nedrīkst uzticēties – neizmantot eval() funkciju ar nedrošiem datiem un saprasta atšķirību PHP starp vienkāršām un dubultām pēdiņām, jo pirmajā gadījumā ievietojot saturā mainīgo nosaukumu tas netiks interpretēts, taču otrajā tiks atgriezta mainīgā vērtība.

Коментарий автора
Atlants