Variablen werden ausgeblendet

Ich habe gelesen, dass es genug ist und sogar empfohlen, Zeichen in der Ausgabe zu maskieren, nicht in der Eingabe.

Es kann leicht auf alle get-Variablen angewendet werden, da sie nicht von der Formularebene aus in die Datenbank eingefügt werden.

Ich bin mir jedoch nicht sicher, was ich mit allen Post-Variablen machen soll. Wenn es nicht aus der Datenbank stammt und es sich um unformatierte Eingabedaten handelt, ist ein Escape-Vorgang vollständig erforderlich. Aber ich verwende PDO Prepare / Execute, um alle Variablen zu entkommen. Fragen jetzt:

Ist es in Ordnung, PDOs prepare / execute sowohl in select- als auch insert-Anweisungen zu verwenden? Entgeht es Variablen nicht zweimal?Nehmen wir an, ich erhalte eine Variable über die PDO exeute-Anweisung. Ist es in Ordnung, diese Variable einfach mit $ _POST ['variable'] anzuzeigen, ohne sie zu maskieren (falls dies bereits in der PDO-Funktion geschehen ist)?Reicht htmlspecialchars () aus, um Dinge wie GET-Variablen zu umgehen, die nicht aus der Datenbank stammen?

Und das Wichtigste: Reichen all dies, PDO prepare / execute und htmlspecialchars () aus, um alle XSS-Angriffe zu verhindern? Oder soll ich auch mehr machen? Wenn ja, wie sollte das sein? Entfernen Sie alle HTML-Tags aus der Eingabe? Verwenden Sie stattdessen BB-Code?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage