Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво е достатъчно дезинфекция за URL

„Достатъчно дезинфекция“ напълно зависи от това за каква среда говорите. Санитаризацията за MySQL трябва да се счита за изцяло отделна от дезинфекция за уеб изход и трябва да ги обработвате отделно, за да избегнете много караница.

Санитиране за MySQL

  • mysql_real_escape_string() ще дезинфекцира част от данни и ще направи безопасното поставяне в SQL заявка.
  • Всеки друг тип злонамерени данни, като HTML тагове вътре в низа, трябва да бъдат абсолютно игнорирани. Опитът да го манипулирате тук ще ви доведе до главоболие, когато се опитате да го "отмените" по-късно, след като го извадите от базата данни. Лошите „уеб данни“ не могат да навредят на вашата база данни.

Санитиране за изход

  • htmlspecialchars($val) по време на изход ще предотврати изобразяването на всякакви злонамерени тагове, тъй като < и > знаците се преобразуват в техните представяния на обекти и не се изобразяват като разделители на маркери.
  • Използвайте ENT_QUOTES модификатор, ако извеждате нещо, което е вътре в атрибута в кавички на HTML елемент, като <input name="email" value="<?php echo htmlspecialchars($email,ENT_QUOTES); ?>" />

Това трябва да е всичко, от което се нуждаете, освен ако нямате специални изисквания. strip_tags() всъщност не трябва да се използва за дезинфекция, тъй като може да бъде заблуден с лошо оформен HTML. Санирането е достойна цел и ако можете да запазите контекстите си отделно, ще срещнете по-малко проблеми с манипулирането на данни между тях.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SELECT COUNT() срещу mysql_num_rows();

  2. MySQL само в рамките на текущия месец?

  3. Как мога да получа пълен списък с всички заявки, изпълнявани в момента на моя MySQL сървър?

  4. Как да разреша това в Mysql (#1242 - Подзаявката връща повече от 1 ред)?

  5. PDO MySQL драйвер на Mac