Advertisement
Guest User

Untitled

a guest
Jun 9th, 2012
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.95 KB | None | 0 0
  1. <?php
  2. /*
  3.  
  4.     BEGIN OF FILE
  5.     by GODINA NICOLAE
  6.     09.06.2012 11:07
  7.     http://my.xbattle.ru/
  8.  
  9. */
  10.  
  11.  
  12. ###################################
  13. ######        MyVALID        ######
  14. ######   by GODINA NICOLAE   ######
  15. ###################################
  16.  
  17. class vNG {
  18.    
  19.     // Variabile
  20.     private $bad_sql = array('DROP', 'INSERT', 'SELECT', 'JOIN', 'UPDATE', '`', '*', 'OR', ';', 'FROM');
  21.     private $bad_words = array('<', '>', '"', "'");
  22.     private $god_words = array('&lt;', '&rt;', '&quot;', '&#039;');
  23.     private $censor_words = array('Fake', 'kkt', 'pl');
  24.     private $censor_rep = '[******]';
  25.     private $error_file = 'errors.txt';
  26.    
  27.     // Functii inregistreare erori
  28.     function regERR($message) {
  29.         $data = '['.date("d/m/Y H:i:s").'] ['.$_SERVER['REMOTE_ADDR'].'] '.$message."\n";
  30.         $vdata = file_get_contents($this->error_file);
  31.         $file = fopen($this->error_file, 'w') or die("Nu pot deschide fisierul");
  32.         fwrite($file,  $vdata.$data);
  33.         fclose($file);
  34.     }
  35.    
  36.     // Functii de control
  37.     function vSQL($sql) { // Functie de validare a codului SQL
  38.         $return = str_replace($this->bad_sql, '', $sql, $ne);
  39.         if ($ne>0) {
  40.             $this->regERR("Bad SQL: $sql");
  41.         }
  42.         return $return;
  43.     }
  44.    
  45.     function ecode($html) { //  Functie de validare a codului HTML
  46.         return htmlentities(stripslashes($html), ENT_QUOTES);
  47.     }
  48.    
  49.     function vGet() { // Procedure de validare GET
  50.         $_GET = str_replace($this->bad_words, $this->god_words, $_GET, $na );
  51.         if ($na>0) {
  52.             $this->regERR("Bad GET: ".json_encode($_GET));
  53.         }
  54.     }
  55.    
  56.     function vPOST() { // Procedure de validare POST
  57.         $_POST = str_replace($this->bad_words, $this->god_words, $_POST, $na );
  58.         if ($na>0) {
  59.             $this->regERR("Bad POST: ".json_encode($_POST));
  60.         }
  61.     }
  62.    
  63.     function censor($text) { // Functie cenzurare de cuvinte urite
  64.         $return = str_replace($this->censor_words, $this->censor_rep, $text, $ne);
  65.         if ($ne>0) {
  66.             $this->regERR("Bad WORDS: ".$text);
  67.         }
  68.         return $return;
  69.     }
  70.    
  71.     function is_email($email) { // Validare email
  72.         return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
  73.     }
  74.    
  75.     function is_url($url) { // Validare adresa
  76.         return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
  77.     }
  78. }
  79.  
  80. $vNG = new vNG();
  81.  
  82. ///////////////////////////////////////////////////////////////
  83. /////////////  TESTARE PRIN EXEMPLE ///////////////////////////
  84. ///////////////////////////////////////////////////////////////
  85.  
  86. # 1. Validare cod SQL
  87. // Creat pentru a filtra anumite variabile prin care se poate injecta un SQL cod strain
  88. echo "SQL VAlid: ".$vNG->vSQL("SELECT * FROM table WHERE id = 1").' <br/>';
  89.  
  90. # 2. Validare cod HTML
  91. // Creat pentru a filtra textul ce poate contine HTML contra XXS
  92. echo "Text Valid: ".$vNG->ecode('<script>alert("XXS");</script>').' <br/>';
  93.  
  94. # 3. Validare masiv $_GET
  95. // Creat pentru a filtra toate datele de intrare prin metoda GET
  96. $vNG->vGET();
  97.  
  98. # 4. Validare masiv $_POST
  99. // Creat pentru a filtra toate datele de intrare prin metoda POST
  100. $vNG->vPOST();
  101.  
  102. # 5. Cenzurarea cuvintelor rele
  103. // Creat pentru a exclude din text cuvinte neadecvate.
  104. echo "Text Cenzurat: ".$vNG->censor("Fake! Treaba asta e kkt!").' <br/>';
  105.  
  106. # 6. Daca este email
  107. // Creat pentru controlul de corectitudine a E-Mail
  108. if ($vNG->is_email("myname@gmail.com")) { echo "Email corect <br/>"; } else { echo "Email incorect <br/>"; }
  109. if ($vNG->is_email("myn@a/me@gmail.com")) { echo "Email corect <br/>"; } else { echo "Email incorect <br/>"; }
  110.  
  111. # 7. Daca este adresa
  112. // Creat pentru controlul de corectitudine a URL
  113. if ($vNG->is_url("http://my.xbattle.ru/")) { echo "URL corect <br/>"; } else { echo "URL incorect <br/>"; }
  114. if ($vNG->is_url("www.mysite/ru")) { echo "URL corect <br/>"; } else { echo "URL incorect <br/>"; }
  115.  
  116. # 8. Inregistrare eroare in registru
  117. // Creat pentru a inregistra o eroare in registru.
  118. $vNG->regERR("Eroarea s-a petrecut in sistema");
  119.  
  120. /*
  121.  
  122.     END OF FILE
  123.     by GODINA NICOLAE
  124.     09.06.2012 12:37
  125.     http://my.xbattle.ru/
  126.  
  127. */
  128. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement