Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wycinanie niepożądanych tagów
waldemi
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 5.03.2007
Skąd: Leszno

Ostrzeżenie: (0%)
-----


Witam
Piszę mały CMS o tematyce przyrodniczej. W Panelu Admina umieściłem edytor TINY MCE aby użytkownicy mogli dodawać swoje artykuły. Jednak po lekturze ostatniego numeru Komputer Świat EXPERT i artykułu o obronie przed atakami XSS okazało się że mój CMS jest na to zupełnie nie odporny. Poszukałem więc w internecie funkcję wycinającą zdefiniowane przeze mnie tagi jak np. DIV czy SCRIPT.
Funkcja wygląda tak:
  1. <?php
  2. function strip_selected_tags($str, $tags = "", $stripContent = false)
  3. {
  4. preg_match_all("/<([^>]+)>/i",$tags,$allTags,PREG_PATTERN_ORDER);
  5. foreach ($allTags[1] as $tag){
  6. if ($stripContent) {
  7. $str = preg_replace("/<".$tag."[^>]*>.*</".$tag.">/iU","",$str);
  8. }
  9. $str = preg_replace("/</?".$tag."[^>]*>/iU","",$str);
  10. }
  11. return $str;
  12. }
  13. ?>

Jednak po wycięciu tagów nadal zostaje tekst który był wpisany między nimi. Czy ktoś umiałby przerobić tą funkcję tak, żeby wycinać też ten tekst?
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $text = '<p>Test paragraph.</p><!-- Comment --> Other text';
  3. echo strip_tags($text);
  4. echo "n";
  5.  
  6. // Allow <p>
  7. echo strip_tags($text, '<p>');
  8. ?>
  9.  
  10. Powyższy przykład wyświetli:
  11.  
  12. Test paragraph. Other text
  13. <p>Test paragraph.</p> Other text

strip_tags


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
piczu
post
Post #3





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


w komentarzu do funkcji jest
Cytat
strip_content flag: TRUE will also strip everything between open and closed tag

co oznacza ze przy stripContent = true, usuwa rowniez to co pomiedzy tagami.

Ten post edytował piczu 9.04.2007, 10:41:01


--------------------
pozdrawiam :)
Go to the top of the page
+Quote Post
waldemi
post
Post #4





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 5.03.2007
Skąd: Leszno

Ostrzeżenie: (0%)
-----


Cytat(piczu @ 9.04.2007, 11:38:35 ) *
w komentarzu do funkcji jest
Cytat

strip_content flag: TRUE will also strip everything between open and closed tag

co oznacza ze przy stripContent = true, usuwa rowniez to co pomiedzy tagami.

Dzięki, gdybym troche lepiej znał angielski to pewnie sam bym to znalazł. Jest jednak nadal mały problem:
jeśli do listy usuwanych tagów wpiszę <script> to tag jest usunięty ale tekst pomiędzy nimi pozostaje. Przy innych jest OK.

Ten post edytował waldemi 9.04.2007, 19:41:54
Go to the top of the page
+Quote Post
piczu
post
Post #5





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


mozesz podac przyklad?


--------------------
pozdrawiam :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 05:28