2013-05-12 6 views
5

Pracuję nad CMS z podpisem kodu. Użytkownicy powinni znać HTML i samodzielnie budować stronę. Teraz mam problemy z przechowywaniem niektórych znaczników w bazie danych (baza danych mysql).Kodek przechowujący html w bazie danych nie działa

Użytkownicy mogą przesyłać obrazy na serwer, a następnie użyć ścieżki obrazu w kodzie. Kod jest edytowany w. Kiedy próbuję zaktualizować kod pewnej strony:

<img src="assets/fileserver/versje2.jpg" alt="" /> 

wszystko działa. Ale kiedy zastosować styl inline do niego

<img style="width: 200px;" src="assets/fileserver/versje2.jpg" alt="" /> 

to nie będzie działać. Po prostu ignoruje styl i następujące dane są przechowywane w bazie danych:

<img src="assets/fileserver/versje2.jpg" alt="" /> 

po prostu usuwa styl. Jak to jest możliwe?

Próbowałem:
-htmlspecialchars
-htmlentities

$config['global_xss_filtering'] = FALSE; 
$config['global_xss_filtering'] = TRUE; 

Wszelkie sugestie na temat tego, co może być problemem?

Odpowiedz

2

Wygląda na to, że już to znalazłem! Najpierw miałem

$config['global_xss_filtering'] = TRUE; 

Następnie ustawić go do

$config['global_xss_filtering'] = FALSE; 

Ale miałem jeszcze XSS | czystego na walidacji formularza!

$this->form_validation->set_rules('inhoud', 'inhoud', 'xss|clean'); 

Dlatego to nie zadziałało, teraz styl jest zapisany w bazie danych po prostu dobrze!

+1

w moim przypadku mam set $ config ['global_xss_filtering'] = FALSE i nie używam sprawdzania poprawności formularza. Użyłem ajaxa do wysyłania znaczników html i stylu inline css i otrzymałem dane za pomocą $ _POST [''] i ostatecznie wywołuję funkcję do wstawienia w MODEL. i nadal nie może zapisać wbudowanego stylu CSS. –

3

Może trzeba zapisać go htmlspecialchars($saveToDB) funkcji,
edycji na wejściu takie jak to: <input name="someHtmlCode" value="<?=$saveToDB;?>" />
i niż echo z htmlspecialchars_decode funkcji w pliku html na stronie:
$html = htmlspecialchars_decode($dataFromDB)

+0

dzięki temu działa nawet jeśli '$ config ['global_xss_filtering']' jest ustawione na 'TRUE' –

Powiązane problemy