Codeigniter - Deaktiviert XSS-Filterung auf Postbasis
Ich versuche zum einrichten eines CMS auf dem Rücken der Website aber immer wenn post-Daten hat eine <a href=...
es in die post-Daten bekommt verschrottet.
Habe ich $config['global_xss_filtering'] = TRUE;
im config
Meine Frage gibt es eine Möglichkeit der Deaktivierung von xss-filtern für einen Punkt?
z.B.
$this->input->post('content', true);
- es anmacht, aber wie kann man Sie ausschalten?
Danke an alle.
PVS
Kommentar zu dem Problem
danke Mann verbringen 2 Stunden.Ich hatte Problem beim speichern base64-Bilder durch ckeditor.XSS-Filterung falsch war, aber es stimmt, in der config-Datei von meinem Kollegen
überprüfen Sie in diesem blog - tekina.info/xss-filtering-ckeditor
InformationsquelleAutor der Frage Von Schmytt | 2010-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, ändern Sie die Standard-Verhalten der
post()
- Methode, können Sie erweitern den core-Eingang Bibliothek, oder wenn Sie faul sind, können Sie nur ändern, line 278 (oder so) der Eingang der Bibliothek, um zu Lesen:Der einzige Unterschied hier ist, dass ich geändert habe, die $xss_clean variable
TRUE
stattFALSE
. Jetzt können Sie ausschalten, Globale XSS-Filterung und es wird automatisch ein filter Eingänge, es sei denn, Sie geben Sie false als zweiten parameter in der Aufruf der Input-librarypost()
Methode. Nur eine Methode ist unten dieget()
Methode, und Sie können ändern, die in der gleichen Weise.Allerdings, wenn ich du wäre, würde ich nur die Erweiterung der nativen Bibliothek, weil es eine gute chance, dass Sie vergessen haben, die dieser durch die Zeit, die Sie aktualisieren, CodeIgniter, und dann werden Sie sich plötzlich Fragen, warum Sie immer sind XSS-Angriffen. Das würde dann so Aussehen:
Erfahren Sie mehr über das erweitern von Bibliotheken hier:
http://codeigniter.com/user_guide/general/creating_libraries.html
InformationsquelleAutor der Antwort treeface
Wenn Sie möchten, um Globale
xss_clean
aktiviert und überschreiben nur auf bestimmte Fälle, können Sie erweitern die Eingabe-Bibliothek zu halten, ein Klon von$_POST
für die Bereitstellung von raw-Daten, wenn Sie gefragt werden:Diese Weise können Sie
$this->input->post('mydata', FALSE)
abrufen un-sanitized raw post-Daten, auch wennxss_clean
ist Global aktiviert.InformationsquelleAutor der Antwort user2966084
definierte ich
in index.php meiner root-cms
dann dort, wo ich die globalen Variablen wie
Wann immer ich Sie benötige post ohne filter.
arbeitete für mich, hoffe es hilft.
InformationsquelleAutor der Antwort muhammad
In meinem Fall, treeface die Lösung nicht funktioniert, aber ich fand einen anderen Weg. Ich machte MY_Input mit
_sanitize_globals() und ich fügte hinzu, wenn der Bau im Ort ist die Desinfektion der post-Daten.
InformationsquelleAutor der Antwort Tomek
Ja, die Erweiterung Eingang mit der post-Methode Ersatz sehr nützlich war, wie der aufmerksame Leser bemerken, dass es sein sollte return parent::post($index, $xss_clean). Ich wurde immer Fehler und glaube nicht, dass offensichtliche Fehler. Fixiert es und ich bin Weg und ausgeführt.
Verwenden wir es, um zu entkommen-post-Daten für die Verwendung in sql-Anweisungen. Obwohl die CI-db-Methoden sind nett, wir haben einige große sql-Anweisungen, die sind leichter zu code von hand.
InformationsquelleAutor der Antwort Zac Imboden
arbeiten mit CI 2.2 ich denke, dass die Lösung von treeface verlassen input->get(), input->cookie() usw nicht xss_cleaned. (wir verwenden, erhalten Sie in der oauth-Anfragen etc.). Der global config ändern, hält Sie Sie mit Escapezeichen versehen, indem Sie den Konstruktor und die core-Klasse noch Standardwerte xss_clean auf FALSE, auf diese Methoden...
Ich habe im Grunde implementiert der gleichen Lösung über mehrere Methoden.
hoffe, dies hilft jemand
InformationsquelleAutor der Antwort pugelarouge
können Sie vorübergehend ausschalten,
$this->config->set_item('global_xss_filtering', false);
$c = $this->input->post('content');
dann schalten Sie es wieder auf..
$this->config->set_item('global_xss_filtering', true);
InformationsquelleAutor der Antwort Johnny Tops