WordPress SQL-Suche, wie SQL Injection?

WordPress SQL-Suche: Wie wird SQL Injection während der Standardsuche gehandhabt?

Beispiel: Sitename.com/?q=test OR 1=1 --

dh,

 q=test%20or%201=1%20-- 

zeigt den ganzen Artikel.

Solutions Collecting From Web of "WordPress SQL-Suche, wie SQL Injection?"

Die standardmäßige Abfragevariable für die öffentliche Suche lautet s aber nicht q .

Wenn Sie also q , wird bei einer WP-Installation auf Vanille wie erwartet keine Filterung von Posts durchgeführt.

Sie müssen sich nicht um mögliche SQL-Injections für die Standard-Suchabfrage kümmern, da sie vom core erledigt werden.

Hier ist ein Beispiel, wenn wir den test OR 1=1 ausführen test OR 1=1 , der WHERE Teil der generierten SQL-Suchabfrage ist:

 AND ( ( (wp_posts.post_title LIKE '%test%') OR (wp_posts.post_excerpt LIKE '%test%') OR (wp_posts.post_content LIKE '%test%') ) AND ( (wp_posts.post_title LIKE '%1=1%') OR (wp_posts.post_excerpt LIKE '%1=1%') OR (wp_posts.post_content LIKE '%1=1%') ) ) 

In diesem Fall sehen wir nicht, dass die Suchzeichenfolge die SQL-Abfrage unterbricht.

Wenn Sie andererseits Ihre eigene Suchabfrage hinzufügen, z. B. indem Sie die Haupt- WP_Query , müssen Sie auf mögliche SQL-Injektionen WP_Query . Die Frage ist spärlich in Details, aber ich gehe davon aus, dass das hier nicht der Fall ist.