Valider fc26b356 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Si _nospam_encrypt est rempli dans le retour de charger() alors on declenche...

Si _nospam_encrypt est rempli dans le retour de charger() alors on declenche tous les mecanismes de protection *meme* si le formulaire n'est pas liste dans les formulaires a proteger : cela permet aux surcharges d'un formulaire protege qui demande explicitement _nospam_encrypt de fonctionner quand meme (ie newsletter_subscribe), et c'est plus logique
parent 09c84e23
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+12 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -205,16 +205,27 @@ function nospam_encrypt_check_valeurs($valeurs, $args) {
 * Decrypter les name d'un POST
 * n'agit qu'une seule fois
 * @param $form
 *   optionel, on peut se reposer sur formulaire_action pour avoir le nom du form
 * @return bool|string
 *   string : message d'erreur
 *   bool : indique si des names ont ete decodes ou non
 */
function nospam_encrypt_decrypt_post($form) {
function nospam_encrypt_decrypt_post($form=null) {
	static $deja = false;
	if ($deja) {
		return false;
	}

	if (is_null($form)) {
		$form = _request('formulaire_action');
		if (!$form) {
			spip_log("SPAM_ENCRYPT_NAME active mais pas de formulaire_action pour  utiliser nospam_encrypt_decrypt_post", 'nospam' . _LOG_INFO_IMPORTANTE);
			#$ua = (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'undefined');
			#spip_log("Suspect SPAMMEUR (_nospam_encrypt) UA:$ua POST:" . json_encode($_POST), 'nospam_suspects' . _LOG_INFO_IMPORTANTE);
			return _T('nospam:erreur_jeton');
		}
	}

	// si l'encrypt a ete active depuis l'affichage initial de ce form, on rebalance l'erreur technique
	// pour reforcer un POST
	// si pas de _nospam_encrypt poste, on refuse la saisie => erreur
+5 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -14,7 +14,7 @@ if (!defined('_SPAM_ENCRYPT_NAME')) define('_SPAM_ENCRYPT_NAME', false);
 * Lister les formulaires a prendre en charge contre le SPAM
 * pour verifier le nobot et le jeton sur un formulaire, l'ajouter a cette liste
 * par le pipeline nospam_lister_formulaires
 * @return void
 * @return array
 */
function nospam_lister_formulaires() {
	if (!isset($GLOBALS['formulaires_no_spam']))
@@ -32,7 +32,8 @@ function nospam_lister_formulaires() {
function nospam_formulaire_fond($flux) {
	// determiner le nom du formulaire
	$form = $flux['args']['form'];
	if (in_array($form, nospam_lister_formulaires())) {
	if (in_array($form, nospam_lister_formulaires())
		or !empty($flux['args']['contexte']['_nospam_encrypt'])) {
		// on ajoute le champ 'nobot' si pas present dans le formulaire
		nospam_inserer_nobot($flux['data'], $flux['args']['contexte']);
	}
@@ -77,9 +78,9 @@ function nospam_inserer_nobot(&$texte, $args) {
 */
function nospam_formulaire_charger($flux) {
	$form = $flux['args']['form'];
	if (in_array($form, nospam_lister_formulaires())
		AND $flux['data']
	if ($flux['data']
		AND is_array($flux['data'])
		AND (in_array($form, nospam_lister_formulaires()) or !empty($flux['data']['_nospam_encrypt']))
	) {
		include_spip("inc/nospam");
		$jeton = nospam_creer_jeton($form);
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="nospam"
	categorie="performance"
	version="2.1.6"
	version="2.2.0"
	etat="stable"
	compatibilite="[3.1.0;3.3.*]"
	logo="images/nospam-64.png"