Changeset 112938 in spip-zone
- Timestamp:
- Dec 19, 2018, 8:37:46 AM (2 years ago)
- Location:
- _plugins_/saisies/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/saisies/trunk/inc/saisies_afficher.php
r112936 r112938 605 605 */ 606 606 function saisies_verifier_securite_afficher_si($condition) { 607 // pas de point virgule ni de $, a priori c'est safe (une seule instruction executable, or pour modifier la base, envoyer un mail, etc, il en faut au moins 2) 608 if (!strstr($condition, ";") and !strstr($condition, "$")) { 607 $interdits = array(";","$","sql","spip"); 608 $presence = 0; 609 foreach ($interdits as $int) { 610 if (strstr($condition, $int)) { 611 $presence++; 612 } 613 } 614 // pas de chaine interdite, a priori safe 615 if (!$presence) { 609 616 return true; 610 617 } 611 618 612 // p oint virgule ou dollar sans guillement?ca pue613 if (strstr($condition, '"') == false and strstr($condition, "'") == false ) {619 // pas de guillemet ou de @, alors ca pue 620 if (strstr($condition, '"') == false and strstr($condition, "'") == false and strstr($condition, "@") == false) { 614 621 return false; 615 622 } 616 623 617 $regexp = "#(?<guillemet>(^\\\)?(\"|' ))(.*)(\k<guillemet>)#mU"; // trouver tout ce qu'il y entre guillemet, sauf si les guillemets sont échapés624 $regexp = "#(?<guillemet>(^\\\)?(\"|'|@))(.*)(\k<guillemet>)#mU"; // trouver tout ce qu'il y entre guillemet, sauf si les guillemets sont échapés 618 625 $condition = preg_replace($regexp, "", $condition);//Supprimer tout ce qu'il y a entre guillement 619 626 620 // il reste encore des $ ou des ; alors qu'on a enlevé les guillemets, ca pue vraiment 621 if (strstr($condition, ";") or strstr($condition, "$")) { 622 return false; 627 // il reste encore des caractères interdit alors qu'on a enlevé les guillemets, ca pue vraiment 628 foreach ($interdits as $int) { 629 if (strstr($condition, $int)) { 630 return false; 631 } 623 632 } 624 633 //Sinon c'est que c'est bon -
_plugins_/saisies/trunk/paquet.xml
r112936 r112938 2 2 prefix="saisies" 3 3 categorie="outil" 4 version="3.8. 7"4 version="3.8.8" 5 5 etat="stable" 6 6 compatibilite="[3.0.0;3.2.*]" -
_plugins_/saisies/trunk/tests/saisies_afficher/saisies_verifier_securite_afficher_si.php
r112925 r112938 73 73 0 => false, 74 74 1 => '@champ1@ == "1"; @champ2@ =="2"' 75 ), 76 array ( 77 0 => true, 78 1 => '@sql_insert@ == "1"' 79 ), 80 array ( 81 0 => false, 82 1 => 'sql_insert() == "1"' 75 83 ) 76 84 );
Note: See TracChangeset
for help on using the changeset viewer.