PHP saugos funkcija: strip_tags, filter_var, Md5 ir sha1

Galimos grėsmės saugumui

Iš esmės tai yra dvi žmonių grupės, kurios gali užpulti jūsų sistemą

  • Įsilaužėliai - turėdami tikslą gauti prieigą prie neleistinų duomenų arba sutrikdyti programą
  • Vartotojai - jie gali nekaltai įvesti neteisingus parametrus formose, kurie gali turėti neigiamą poveikį svetainei ar žiniatinklio programai.

Toliau pateikiamos tokios atakų rūšys, į kurias turime atkreipti dėmesį.

SQL įpurškimas - tokio tipo užpuolimas prideda žalingą kodą prie SQL sakinių.

Tai atliekama naudojant vartotojo įvesties formas arba URL, kuriuose naudojami kintamieji.

Pridedamas kodas komentuoja sąlygą SQL sakinio WHERE sąlygoje. Pridedamas kodas taip pat gali;

  • įterpkite sąlygą, kuri visada bus teisinga
  • ištrinti duomenis iš lentelės
  • atnaujinti duomenis lentelėje
  • Šio tipo ataka paprastai naudojama norint gauti neteisėtą prieigą prie programos.

Skriptai keliose svetainėse - šio tipo ataka įterpia žalingą kodą, paprastai „JavaScript“. Tai daroma naudojant vartotojo įvesties formas, pvz., Susisiekite su mumis ir komentarų formas. Tai daroma;

  • Gaukite slaptą informaciją, pvz., Slapukus
  • Nukreipkite naudotoją į kitą URL.
  • Kitos grėsmės gali būti: PHP kodo injekcija, „Shell Injection“, „Email Injection“, scenarijaus šaltinio kodo atskleidimas ir kt.

Geriausia PHP programų saugumo praktika

Pažvelkime į keletą geriausių PHP saugumo praktikų, į kurias turime atsižvelgti kurdami savo programas.

PHP strip_tags

Funkcijos „strip_tags“ pašalina HTML, „JavaScript“ ar PHP žymas iš eilutės.

Ši funkcija yra naudinga, kai turime apsaugoti savo programą nuo atakų, tokių kaip kelių svetainių scenarijai.

Apsvarstykime programą, kuri priima vartotojų komentarus.

My Commenting System
";echo $user_input;?>

Darant prielaidą, kad phptuts aplanke išsaugojote comments.php, eikite į URL : http: //localhost/phptuts/comments.php

Tarkime, kad gavote šiuos duomenis, nes vartotojo įvesties

alert('Your site sucks!');";echo "

My Commenting System

";echo $user_input;?>

Naršykite iki URL : http: //localhost/phptuts/comments.php

Apsaugokime savo programą nuo tokių išpuolių naudodami strip_tags funkciją.

alert('Your site sucks!');";echo strip_tags($user_input);?>

Naršykite iki URL : http: //localhost/phptuts/comments.php

PHP filter_var funkcija

Funkcija filter_var naudojama duomenims patvirtinti ir išvalyti.

Patvirtinimas tikrina, ar duomenys yra tinkamo tipo. Eilutės skaitinis patikrinimas pateikia klaidingą rezultatą.

Sanitarizavimas pašalina neteisėtus simbolius iš eilutės.

Patikrinkite šią nuorodą, jei norite rasti visą nuorodą filter_var

Kodas skirtas komentavimo sistemai.

Jis naudoja filtro_var funkciją ir FILTER_SANITIZE_STRIPPED konstantą žymoms nuimti.

alert('Your site sucks!');";echo filter_var($user_input, FILTER_SANITIZE_STRIPPED);?>

Išvestis:

alert('Your site sucks!');

mysqli_real_escape_string funkcija Ši funkcija naudojama programai apsaugoti nuo SQL injekcijos.

Tarkime, kad vartotojo ID ir slaptažodį patvirtinti turime šį SQL sakinį.


Kenkėjiškas vartotojas gali įvesti šį kodą vartotojo ID teksto laukelyje. 'OR 1 = 1 - ir 1234 slaptažodžio teksto laukelyje Užkoduokime autentifikavimo modulį


Galutinis rezultatas bus

SELECT uid,pwd,role FROM users WHERE uid = '' OR 1 = 1 -- ' AND password = '1234';

ČIA

  • „SELECT * FROM users WHERE user_id =“ “bando tuščią vartotojo ID
  • „ARBA 1 = 1“ yra sąlyga, kuri visada bus teisinga
  • „-“ komentuoja tą dalį, kuri išbando slaptažodį.

Pirmiau pateikta užklausa grąžins visus vartotojus. Dabar naudokime „mysqli_real_escape_string“ funkciją, kad apsaugotume savo prisijungimo modulį.


Aukščiau pateiktas kodas bus išvestas

SELECT uid,pwd,role FROM users WHERE uid = '\' OR 1 = 1 -- ' AND password = '1234';

Atkreipkite dėmesį, kad antrosios vienos citatos mums nepavyko išvengti, ji bus laikoma vartotojo ID dalimi ir slaptažodis nebus komentuojamas.

PHP Md5 ir PHP sha1

Md5 yra „Message Digest 5“, o „sha1“ yra „Secure Hash“ 1 algoritmo akronimas.

Jie abu naudojami šifruoti eilutes.

Užšifravus eilutę, ją nušifruoti vargina.

Md5 ir sha1 yra labai naudingi saugant slaptažodžius duomenų bazėje.

Žemiau pateiktas kodas rodo md5 ir sha1 įgyvendinimą


Darant prielaidą, kad failą hashes.php išsaugojote aplanke phptuts, eikite į URL

Kaip matote iš pirmiau nurodytų maišų, jei užpuolikas įgijo prieigą prie jūsų duomenų bazės, jis vis tiek nežinojo slaptažodžių, kad galėtų prisijungti.

Santrauka

  • Saugumas reiškia priemones, įdiegtas siekiant apsaugoti programą nuo atsitiktinių ir kenkėjiškų išpuolių.
  • strip_tags funkcija naudojama pašalinti žymes, tokias kaip iš įvesties duomenų
  • „filter_var“ funkcija patvirtina ir PHP išvalo įvesties duomenis
  • mysqli_real_escape_string yra naudojamas SQL sakiniams šalinti. Tai pašalina kenksmingus simbolius iš teiginių
  • tiek MD5, tiek SHA1 naudojami slaptažodžiui užšifruoti.

Įdomios straipsniai...