Slutningen af Suhosin; hvad er det næste?

Slutningen af Suhosin; hvad er det næste?

PHP Suhosin

I mange år, Jeg har nidkært brugt Suhosin med alle implementeringer af PHP5 på Apache2 eller PHP-FPM Nginx-webservere for at forsvare mod SQL-injektion og andre almindelige webangreb. Faktisk, PHP5 var så katastrofalt, både med hensyn til dets kerne sikkerhed, og dets funktioner og moduler, som jeg aldrig kunne have forestillet mig ved brug af det uden nogen væsentlig hærdning, som Suhosin giver.

Da PHP5 er forfaldet, og mine gamle programmer alle er væk, Jeg står tilbage med flere implementeringer af PHP7 og ingen tilgængelige Suhosin-patches.

Selvom, det stadig teknisk set er muligt at tilføje Suhosin til PHP 7.0 og 7.1 (før alpha – ikke til produktion), det er rimeligt at sige, at projektet for længst har været væk, og PHP7 allerede har bevist, at det kan være besværligt ligesom det var sin forgænger. mens jeg overvejer en ny tilføjelse til WAF og kernesikkerheden i PHP7, her er nogle af de løsninger, jeg kom med:

Deaktivering af dårlige eller unødvendige funktioner

Der er mange risikable funktioner indbygget i PHP, som potentielt kan være farlige og bør deaktiveres i 'php.ini' som standard. Du kan finde konfigurationsfilen ved hjælp af nedenstående kommando og deaktivere funktionerne via vi eller nano.

php -i | grep "php.ini"

BEMÆRK: Hvis du kører forskellige versioner af PHP samtidig, eller programmet er installeret som en del af en anden tredjepartsapplikation, er der stor sandsynlighed for, at du har flere 'php.ini' installeret, og det er ikke klart, hvilken der indlæses af webserveren. Sørg for, at du redigerer den korrekte version (php -v).

Tilføj nedenstående linje i slutningen af 'php.ini' filen, sørg for, at du har gemt filen, og genstart webserveren. Du kan lære om hver af disse PHP-funktioner på denne adresse. Som en målrettet handling, du vil måske tilføje dem én ad gangen for at sikre, at det ikke påvirker dine applikationer negativt.

disable_functions = popen, eval, leak, exec, shell_exec, curl_exec, curl_multi_exec, parse_ini_file, mysql_connect, system, phpinfo, escapeshellarg, escapeshellcmd, passthru, symlink, show_source, mail, sendmail, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, pfsockopen, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid

Deaktivering af Register Globals og Base64

Register Global er en funktion i PHP, der tillader input arrays fra URL'en at blive konverteret til variabler inde i din kode. Derfor, enhver potentielt sårbar kode kan udnyttes af en angriber, der kan sende ondsindede arrays via HTTP GET- eller POST-forespørgsler.

Register Globals kan nemt deaktiveres ved at tilføje nedenstående linje i slutningen af ‘php.ini’. Glem ikke at genstarte webserveren for at gennemføre ændringerne.

register_globals = Off

Ligesom Register Globals, Base64 er en anden ofte unødvendig funktion, der åbner døren for ondsindede backdoors. Du kan permanent deaktivere Base64-dekoderen ved at tilføje nedenstående linje til slutningen af 'php.ini'.

base64_decode = Off
Ansvarsfraskrivelse efter indlæg

Udsigten, information, eller de udtrykte meninger udelukkende er ophavsmandens og ikke nødvendigvis repræsenterer arbejdsgiverens eller de organisationers, han er tilknyttet;.

Oplysningerne i dette indlæg er kun til generelle informationsformål. Oplysningerne leveres af Farhad Mofidi, og samtidig bestræber han sig på at holde oplysningerne aktuelle og nøjagtige, han fremsætter ingen erklæringer eller garantier af nogen art, udtrykkelig eller underforstået, med hensyn til fuldstændigheden, nøjagtighed, pålidelighed, Webstedets egnethed eller tilgængelighed. Farhad fremsætter ingen erklæringer eller garantier. eller andre oplysninger, produkter eller relateret grafik indeholdt i ethvert indlæg til ethvert formål.

Også, AI kan anvendes som et værktøj til at give forslag og forbedre noget af indholdet eller sætningerne. Ideerne, Tanker, Udtalelser fra, og endelige produkter er originale og menneskeskabte af forfatteren.

 

Efterlad et svar

Din e-mailadresse vil ikke blive offentliggjort. Krævede felter er markeret *