Arduino

Beveiligingsfunctie: strip_tags, filter_var, Md5 en sha1

Potentiële beveiligingsbedreigingen

Het zijn in feite twee groepen mensen die je systeem kunnen aanvallen

Het volgende zijn de soorten aanvallen waar we op moeten letten.

SQL injectie

Dit type aanval voegt schadelijke code toe aan SQL instructies.

Dit gebeurt met behulp van gebruikersinvoerformulieren of URL's die variabelen gebruiken.

De bijgevoegde code geeft de voorwaarde in de WHERE component van een SQL instructie op.

De code kan ook

Cross site scripting

Dit type aanval voegt schadelijke code in, meestal JavaScript. Dit gebeurt met behulp van gebruikersinvoerformulieren zoals contactformulier en opmerkingenformulieren.

Dit word gedaan om

PHP Application Security Best Practices

Laten we nu kijken naar enkele van de best practices van PHP Security die we moeten overwegen bij het ontwikkelen van onze applicaties.

PHP strip_tags

De functie strip_tags verwijdert HTML, JavaScript of PHP tags uit een tekenreeks.

Deze functie is handig als we onze applicatie moeten beschermen tegen aanvallen zoals cross-site scripting.

Laten we een toepassing overwegen die reacties van gebruikers accepteert.

<? Php
$user_input = "Your site rocks";
echo "<h4>My Commenting System</h4>";
echo $user_input;
?>

Ervan uitgaande dat u comments.php hebt opgeslagen in de map met phptuts, bladert u naar de URL http://localhost/phptuts/comments.php

Laten we aannemen dat je het volgende ontvangt als de gebruiker ingevoerde <script> waarschuwing ('Your site sucks!'); </ Script>

<? Php
$user_input = "<script> alert ('Your site sucks!'); </ script>";
echo "<h4>My Commenting System</ h4>";
echo $user_input;
?>

Blader naar de URL http://localhost/phptuts/comments.php

Laten we nu onze applicatie beveiligen tegen dergelijke aanvallen met de functie strip_tags.

<? Php
$user_input =  "<script> alert ('Your site sucks!'); </ script>";
echo strip_tags($user_input);
?>

Blader naar de URL http://localhost/phptuts/comments.php

PHP filter_var functie

De functie filter_var wordt gebruikt om gegevens te valideren en te ontsmetten.

Validatie controleert of de gegevens van het juiste type zijn. Een numerieke validatiecontrole van een tekenreeks retourneert een fout resultaat.

Ontsmetting is het verwijderen van illegale karakters uit een string.

Controleer deze link voor de volledige referentie filter_var

Het gebruikt de filter_var functie en FILTER_SANITIZE_STRIPPED constante om tags te verwijderen.

<? Php
$user_input = "<script> alert('Your site sucks!'); </ script>";
echo filter_var($user_input, FILTER_SANITIZE_STRIPPED);
?>

Output:

alert ('Your site sucks!');

Mysql_real_escape_string functie

Deze functie wordt gebruikt om een ​​toepassing te beschermen tegen SQL-injectie.

Laten we veronderstellen dat we de volgende SQL-instructie hebben voor het valideren van het gebruikers ID en wachtwoord.

<? Php
SELECT uid, pwd, role  FROM users WHERE uid = 'admin' AND password = 'pass';
?>

Een kwaadwillende gebruiker kan de volgende code invoeren in het tekstvak user id. 'OF 1 = 1 - En 1234 in het tekstvak van het wachtwoord

Laten we de authenticatiemodule coderen

<? Php
$uid = "' OR 1 = 1 -- ";
$pwd =  "1234";
$sql = "SELECT uid, pwd, role FROM users WHERE uid = '$uid' AND password = '$pwd';";
echo $sql;
?>

Het eindresultaat zal zijn

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

De bovenstaande query retourneert alle gebruikers

Laten we nu de functie mysql_real_escape_string gebruiken om onze aanmeldingsmodule te beveiligen.

<? Php
$uid =  mysql_real_escape_string ("'OR 1 = 1 -- ");
$pwd =  mysql_real_escape_string ("1234");
$sql = "SELECT uid, pwd, role FROM users WHERE uid = '$uid' AND password = '$pwd';";
echo $sql;
?>

De bovenstaande code geeft als output

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

Merk op dat het tweede enkele aanhalingsteken voor ons is ontsnapt, het zal worden behandeld als onderdeel van het gebruikers ID en het wachtwoord zal niet worden becommentarieerd.

PHP Md5 en PHP sha1

Md5 is de afkorting voor Message Digest 5 en sha1 is het acroniem voor Secure Hash Algorithm 1.

Ze worden beide gebruikt om strings te coderen.

Zodra een string is gecodeerd, is het vervelend om deze te decoderen.

Md5 en sha1 zijn erg handig bij het opslaan van wachtwoorden in de database.

De onderstaande code toont de implementatie van md5 en sha1

<? Php
echo "MD5 Hash:". md5 ( "password");
echo "SHA1 Hash:". sha1 ( "password");
echo $sql;
?>

Ervan uitgaande dat u het bestand hashes.php in de map phptuts hebt opgeslagen, bladert u naar de URL

Zoals je kunt zien aan de hand van de bovenstaande hashes, zouden hackers die nog geen toegang hadden tot je database, nog steeds geen wachtwoord kennen om in te loggen.

Samenvatting

Vorige Volgende