[spip-lab-commit] [cvs] spip: ortho.php: ortho : bug dans le hack anti-bug

From : spip-lab-commit@... , the 20th juillet 2004 17:54
  • 2004-07-20 17:54:44 — spip-lab-commit@... - [spip-lab-commit] [cvs] spip: ortho.php: ortho : bug dans le hack anti-bug

Log Message: ----------- ortho : bug dans le hack anti-bug Modified Files: --------------     spip/include:         ortho.php         (http://lab.spip.net/cvs/spip/include/ortho.php) Revision Data ------------- Index: ortho.php =================================================================== RCS file: /home/cvs/spip/include/ortho.php,v retrieving revision 1.14 retrieving revision 1.15 diff -Linclude/ortho.php -Linclude/ortho.php -u -r1.14 -r1.15 --- include/ortho.php +++ include/ortho.php @@ -84,10 +84,16 @@   // Sinon, on passe en multipart pour compresser la chaine a corriger   else {   // Il faut eliminer les caracteres 0 sinon PHP ne lit pas la suite du parametre - // passe en multipart/form-data (burp) - $texte_gz = str_replace("\x00", "\xFF\xFF\xFF\xFF", gzcompress($texte)); + // passe en multipart/form-data (gros hack bien sale) + $texte_gz = gzcompress($texte); + for ($echap = 255; $echap > 0; $echap--) { + $str_echap = chr($echap ^ 1).chr($echap).chr($echap).chr($echap ^ 2); + if (!is_int(strpos($texte_gz, $str_echap))) break; + } + $texte_gz = str_replace("\x00", $str_echap, $texte_gz); + //echo bin2hex($str_echap).' '.strlen($texte_gz).' '.bin2hex($texte_gz);   $gz = true; - $vars = array('op' => 'spell', 'lang' => $lang, 'texte' => $texte_gz, 'gz' => 1); + $vars = array('op' => 'spell', 'lang' => $lang, 'texte' => $texte_gz, 'gz' => 1, 'nul_echap' => $str_echap);   $boundary = substr(md5(rand().'ortho'), 0, 8);   $body = '';   foreach ($vars as $key => $val) {