Wątek przeniesiony 2015-09-28 13:18 z PHP przez dzek69.

Zapis i odczyt danych z/do bazy w HTML

0

Witam serdecznie,
Kombinuję nad uniwersalnym skryptem służącym do zapisu danych wprowadzonych przez użytkowników do bazy w formie HTML:

 
function baza_zapis($string) { 
    $string = addslashes($string);
    $string = trim((htmlspecialchars(($string), ENT_QUOTES)));
    return $string;
}

Nie wiem za bardzo jak bezpiecznie to "odkodować" przy wyświetlaniu…. kombinuję nad czymś takim:

 
function baza_odczyt($string) { 
    $string = htmlspecialchars_decode($string);
    $string = stripslashes($string);
    return $string;
}

Mam problem z odkodowaniem danych z bazy…. dodaje jakieś "" po odczycie…

Wie ktoś może jak to poprawić?:)

Bardzo proszę o pomoc

0

Na pewno potrzebujesz html? zastanów się nad tym, jest to mocno niebezpieczne, lepiej działać na tagach bbcode i wtedy zapisujesz czyścisz tekst tak jak czyścisz a przy wyświetlaniu masz mały parserek który zamienia tylko tagi na odpowiedni kod html. Tak działa każde forum nawet te :)

0

czyli dane z edytorka html lepiej zamieniać na bbcode, tak?:) i to zapisywać w bazie?

0

Tak, jest dużo bardziej bezpieczne. Pomyśl co by było jakby ktoś ci przesłał

<script>alert('heheszki')</script>

A to jest tylko zwykły psikus, niestety w ten sposób można np wykradać ciasteczka sesji :) Poczytaj o xss. Robisz typową dziurę dla ataków xss.

0

W sumie masz rację!! Dziękuję za podpowiedź :)

Znasz może jakiś dobry "koder" zamieniający html na ten bbcode?:)

0

Ok, zrobiłem tego według wzoru:

 

$text = '<script>alert("heheszki")</script>';

function baza_zapis2($string) { 
    $string = preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', "", $string);
    $converter = new Converter\HTMLConverter($string, $id);
    return $converter->toBBCode();
}

Jak to zamienić w 2 stronę? ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1