Mam problem związany z bezpieczeństwem. Nie chcę robić BBCode, tylko bezpośrednio wysyłać formularz do bazy.
Otóż mam edytor na stronie: http://code.google.com/p/jwysiwyg/ , który jest wyświetlany jeśli user ma włączony js. Jeśli nie, to pokazuje mu się po prostu zwykłe textarea.
Jeśli wpiszę do edytora jwysiwyg coś typu <javascript> to zamienia to oczywiście na <javascript> , za to jeśli przy pomocy edytora np. pogrubię czcionkę to wysyła do serwera <b>hahah</b> tak jak powinno. Jednakże bez js jak ktoś wpisze jakiś skrypt - jestem w niebezpieczeństwie, bo to prześle bez konwertowania. Dlatego też dodałem parę linijek:
$content = str_replace('<script', 'javascript-error', $content); $content = str_replace('<?php', 'php-error', $content); $content = str_replace('<?', 'php-error', $content); $content = str_replace('?>', 'php-error', $content); $content = str_replace('</script>', 'javascript-error', $content); $content = str_replace('<iframe', 'iframe-error', $content);
Za to wyżej jest:
Czy to wystarczy? Czy powinienem zrobić to w inny sposób? Zależy mi na bezpieczeństwie.