Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy Markdown (z strip_tags) wystarczy do powstrzymania ataków XSS?

Myślę, że usunięcie dowolnego tagu HTML z danych wejściowych zapewni ci coś całkiem bezpiecznego — z wyjątkiem sytuacji, gdy ktoś znajdzie sposób na wstrzyknięcie naprawdę pomieszanych danych do Markdowna, generując jeszcze bardziej pomieszane dane wyjściowe ^^

Mimo to, oto dwie rzeczy, które przychodzą mi na myśl:

Pierwszy : strip_tags nie jest funkcją cudu:ma pewne wady...
Na przykład, w takiej sytuacji usunie wszystko po znaku '<' :

$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));

Otrzymuję wynik:

string '10 appels is ' (length=13)

Co nie jest miłe dla Twoich użytkowników :-(


Drugi : Któregoś dnia możesz chcieć zezwolić na niektóre tagi/atrybuty HTML; lub nawet dzisiaj możesz chcieć mieć pewność, że Markdown nie generuje niektórych tagów/atrybutów HTML.

Może Cię zainteresować coś takiego jak HTMLPurifier :pozwala określić, które znaczniki i atrybuty powinny być zachowane, oraz filtruje ciąg, tak aby pozostały tylko te.

Generuje również prawidłowy kod HTML – co zawsze jest miłe ;-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ostatnio wstawiony identyfikator MySQL PDO

  2. Zaktualizuj tabelę MySQL z pliku lokalnego

  3. SQL SERVER – Sztuczka – Uruchamianie SSMS z innym kontem Windows

  4. MySQL wybierz dołącz gdzie ORAZ gdzie

  5. Dlaczego id auto_increment nie rośnie jeden po drugim, jak to ustawić?