Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Skrypt nie zwraca wartości
patryk9200
post 13.11.2009, 23:37:26
Post #1





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


Cześć,
Zrobiłem sobie skrypt oczyszczajacy tablice z niechcianych kodów np. javascript html itp. i mam taki problem, że powinien mi w wypadku gdy usunie z ciągu typ danych zakazanych to powinien wyskoczyć komunikat jaki to typ itp. czyści natomiast bardzo skutecznie. Oto kod:
  1. <?php
  2. $security['java'] = 0;
  3. $security['html'] = 0;
  4. $security['style'] = 0;
  5. $security['cdata'] = 0;
  6. $security['mysql'] = 0;
  7. function CleanScript($tekst,$jv=TRUE,$htm=TRUE,$css=TRUE,$cd=TRUE,$mysql=TRUE){
  8. global $security;
  9. $java = array('@<script[^>]*?>.*?</script>@si'); // javascript
  10. $html = array('@<[\/\!]*?[^<>]*?>@si'); // html
  11. $style = array('@<style[^>]*?>.*?</style>@siU'); // css
  12. $cdata = array('@<![\s\S]*?--[ \t\n\r]*>@'); // CDATA
  13. $txt = $tekst;
  14. $e = $tekst;
  15. if ($htm == 1){$tekst = preg_replace($html, '', $tekst); $security['html'] = strcmp($e,$tekst);};
  16. $q = $tekst;
  17. if ($jv == 1){$tekst = preg_replace($java, '', $tekst); $security['java'] = strcmp($q,$tekst);};
  18. $w = $tekst;
  19. if ($css == 1){$tekst = preg_replace($style, '', $tekst); $security['style'] = strcmp($w,$tekst);};
  20. $r = $tekst;
  21. if ($cd == 1){$tekst = preg_replace($cdata, '', $tekst); $security['cdata'] = strcmp($r,$tekst);};
  22. $t = $tekst;
  23. if ($mysql == 1){$tekst = mysql_escape_string($tekst); $security['mysql'] = strcmp($t,$tekst);};
  24. global $security;
  25. $txt = $tekst;
  26. return $txt;
  27. }
  28. $security['_post'] = serialize($_POST);
  29. $security['_get'] = serialize($_GET);
  30. foreach($_GET as $klucz => $wartosc)
  31. {
  32. $z = 'UnSec';
  33. $a = explode('_', $klucz);
  34. foreach($a as $value){
  35. if(eregi($value, $z))
  36. {
  37. $_GET[$klucz] = CleanScript($_GET[$klucz],FALSE,FALSE,FALSE,FALSE);
  38. } else
  39. {
  40. $_GET[$klucz] = htmlspecialchars(strip_tags(CleanScript($_GET[$klucz])));
  41. }
  42. }
  43. }
  44.  
  45. foreach($_POST as $klucz => $wartosc)
  46. {
  47. $z = 'UnSec';
  48. $a = explode('_', $klucz);
  49. foreach($a as $value){
  50. if(eregi($value, $z))
  51. {
  52. $_POST[$klucz] = CleanScript($_POST[$klucz],FALSE,FALSE,FALSE,FALSE);
  53. } else
  54. {
  55. $_POST[$klucz] = htmlspecialchars(strip_tags(CleanScript($_POST[$klucz])));
  56. }
  57. }
  58. }
  59.  
  60. $security['post'] = serialize($_POST);
  61. $security['get'] = serialize($_GET);
  62.  
  63. foreach($security as $klucz => $wartosc)
  64. {
  65. if ($wartosc == 1)
  66. echo '<h1>Zmienna zawiera niedozwolone treści: security error type:'.$klucz.'</h1>';
  67. }
  68. ?>


Ten post edytował patryk9200 13.11.2009, 23:38:24
Go to the top of the page
+Quote Post
marcio
post 13.11.2009, 23:59:05
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Cytat
Zrobiłem sobie skrypt oczyszczajacy tablice z niechcianych kodów np. javascript html itp


Samo htmlspecialchars() i strip_tags() + trim() wystarcza nie potrzebnie robisz tyl zamieszania chyba ze potrzebujesz oczyscic ze wszystkiego do jakiejs tam czynnosci.



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
patryk9200
post 16.11.2009, 16:59:47
Post #3





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


potrzebuję oczyścić z wszystkiego, jak można zauważyć skrypt filtruje tablicę i elementy traktuje zależnie od nazwy, jeśli mają przedrostek UnSec_ to nie filtruje ich











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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:47