Защитете вашия PHP код

  • От решаващо значение е да се осигурят сигурни данни от потребителите (формуляри и URL адреси и т.н.), с изключение на сървъра OS и http сървъра, главно поради уеб атака.
  • Има 3 категории за осигуряване на вашия PHP код:

Валидиране на потребителите на данни

Когато сайтът предлага формуляри, позволяващи на потребителите да заснемат и изпратят съдържание, това не е достатъчно, за да посочи формата на записите (адрес на електронна поща, телефонен номер, количество продукти). Сървърът също трябва да бъде наблюдаван (напр. PHP), ако данните са конвенционални за нашите очаквания. Като вземете под внимание цели числа, конвертирайте всички данни, изпратени от потребителя:

Потвърдете данните от URL или Формуляри

Почти всички получени данни са от URL адреса или формулярите, създадени от уеб администратора. Почти всички параметри за показване на URL адреси показват, както следва:

/index.php?rub=25

Този параметър обаче не трябва да се променя. Но това е възможно по-долу:

 /index.php?rub=0 /index.php?rub=/index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+or+1 
  • От решаващо значение е да се провери дали форматът, получен чрез URL адреса или формата, се очаква независимо от вида на данните.
  • Можете да използвате функцията filter_input (), за да потвърдите същото.
  • Например, ако сте получили имейл от потребител от формата формат с име на полето като имейл. Можете да възстановите същото чрез:

 $ email = filter_input (INPUT_POST, 'имейл', FILTER_VALIDATE_EMAIL); if ($ email) {// Въвеждането на имейл адреса наистина е формат на пощенския адрес} 

Тази функция може да филтрира много неща: IP адрес, URL и т.н. Може да има модификации като кодиране на низ преди изпращане чрез URL като процес от htmlentities ().

  • Няколко филтъра могат да бъдат комбинирани с помощта на "|",
  • За валидиране на ip адреса само в Ipv4 формат:

$ ip = filter_input (INPUT_GET, 'ip', FILTER_VALIDATE_IP | FILTER_FLAG_IPV4);

Кликнете върху следната връзка за филтри:

//www.php.net/filter

Прескочете показваното съдържание на URL адреса

Когато съдържанието, въведено от потребителя, се покаже на екрана, то съдържа HTML или JavaScript код, който обаче прави защитата задължителна.

Ако съдържанието, което ще се показва в html: трябва да кодирате HTML настройката, за да конвертирате всички символи в еквивалентни HTML елементи. По-долу е функцията php за автоматизиране на този процес:

echo htmlentities ($ _ REQUEST ['content']);

Ако съдържанието трябва да се показва в URL адрес: трябва да въведете кода.

PHP има две функции за това кодиране: urlencode () и rawurlencode (). Разликата между тези две функции е кодирането на област, която в първата функция дава и осигурява% 20 и "+" във втората.

 echo '//www.website?valeur='.urlencode($_REQUEST['value']); 

Ако съдържанието трябва да се съхранява в база данни: е необходимо да се избягват всички символи с определена роля в използвания сървър на базата данни. За PHP и MySQL, функцията mysql_escape_string () прави всички потенциално вредни символи в низа, подадени като параметър.

 $ query = 'SELECT id от съвместим WHERE потребител = "'. mysql_escape_string ($ _ REQUEST ['user'])." "'; 

Имайте предвид, че сървърът е конфигуриран с опция PHP magic_quotes, данните, предавани от потребителите, са автоматично защитени с обратни наклонени черти (обратно наклонена черта). По този начин, преди да защитите mysql_escape_string, трябва да "отмените" тази основна защита:

 $ query = 'SELECT id от mytable WHERE потребител = "'. stripslashes (mysql_escape_string ($ _ REQUEST ['user']))." "'; 
Предишна Статия Следваща Статия

Топ Съвети