Prestashop – Franco de port uniquement pour un seul transporteur

13/04/2012 Aucun commentaire

Par défaut sous Prestashop lorsque l’on active les frais de transporteur offert sous prestashop à partir d’un certain montant, ça impacte sur l’ensemble des transporteurs enregistrés.

Maintenant si on envoie des colis via Colissimo et Chronopost par exemple, on peut vouloir offrir les frais de port pour Colissimo mais pas pour Chronopost.

Pour cela rien de plus simple, mais il faut tout de même toucher 2 lignes de codes.

Avant tout chose, aller dans la base de données et se déplacer dans la table ps_carrier

Ici on peut voir l’ensemble des transporteurs enregistrés sous Prestashop. Repérer par exemple Colissimo et son ID nommé id_carrier.

Ensuite se connecter en FTP et éditer le fichier classes/Cart.php

Repérer le bout de code:

$orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING);
if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0)
return $shipping_cost;
if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0)
return $shipping_cost;

Et ajouter après >0 le code: AND intval($id_carrier) == 5 (Remplacer 5 par votre ID transporteur)

Ca donne donc:

if ($orderTotalwithDiscounts >= (float)($free_fees_price) AND (float)($free_fees_price) > 0 AND intval($id_carrier) == 5)
return $shipping_cost;
if (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $this->getTotalWeight() >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0 AND intval($id_carrier) == 5)

Et voilou!

A+

Corriger les faux positifs de mod_security

05/04/2012 Aucun commentaire

Bon mod_security est merveilleux mais mod_security est aussi super casse couille!

Clairement plein de scripts peuvent générer des erreurs une fois mod_security activé.

Pour aller très vite on peut désactiver mod_security juste pour un virtualhost donné.Pour cela on ajoute dedans (dans /etc/httpd/conf.d/monvhost.conf): SecRuleEngine Off

Maintenant ca n’a pas vraiment d’intêret car en faisant ça le site est à nouveau vulnérable à plusieurs attaques. On peut donc être beaucoup plus précis en précisant uniquement les erreurs ou les attaques qui n’en sont finalement pas.

La première chose à faire est d’aller jeter un coup d’oeil dans les logs: tail -f /var/log/httpd/modsec_audit.log

tail – f permet d’afficher en live l’activité. Donc une fois cette commande lancée, on va se ballader sur le site en question et on génère l’erreur. On peut voir alors des messages de ce type:

Message: Match of “rx ^OPTIONS$” against “REQUEST_METHOD” required. [file "/etc/httpd/modsecurity.d/base_rules/modsecurity_crs_21_protocol_anomalies.conf"] [line "46"] [id "960015"] [rev "2.0.5"] [msg "Request Missing an Accept Header"] [severity "CRITICAL"] [tag "PROTOCOL_VIOLATION/MISSING_HEADER"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"]

Ici on voit [id "960015"].

Là le tour est joué. Il suffit de relever l’ID puis de l’inscrire dans le virtualhost du site qui plante.
De la manière suivante:

<LocationMatch “/mondosiser-où-il-y-a-le-probleme ou /mon-fichier-qui-pose-probleme.php”>
SecRuleRemoveById 960015
</LocationMatch>

Pour les blog sous wordpress, une fois mod_security activé on ne peut même plus prévisualiser son article ou le publier. C’est plutôt problématique.
Il y a un paquet d’ID à relever et inscrire dans le virtualhost pour s’en sortir.

Comme je suis dans un bon jour, voici la liste à noter et tout sera réglé ;)

<LocationMatch “/”>
SecRuleRemoveById 910006
SecRuleRemoveById 960015
</LocationMatch>

<LocationMatch “/wp-admin/post.php”>
SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904
SecRuleRemoveById phpids-17
SecRuleRemoveById phpids-20
SecRuleRemoveById phpids-21
SecRuleRemoveById phpids-30
SecRuleRemoveById phpids-61
</LocationMatch>
<LocationMatch “/wp-admin/admin-ajax.php”>
SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904
SecRuleRemoveById phpids-17
SecRuleRemoveById phpids-20
SecRuleRemoveById phpids-21
SecRuleRemoveById phpids-30
SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch “/wp-admin/page.php”>
SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904
SecRuleRemoveById phpids-17
SecRuleRemoveById phpids-20
SecRuleRemoveById phpids-21
SecRuleRemoveById phpids-30
SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch “/wp-admin/options.php”>
SecRuleRemoveById 300015 300016 300017 950907 950005 950006 960008 960011 960904
SecRuleRemoveById phpids-17
SecRuleRemoveById phpids-20
SecRuleRemoveById phpids-21
SecRuleRemoveById phpids-30
SecRuleRemoveById phpids-61
</LocationMatch>

<LocationMatch “/wp-includes/”>
SecRuleRemoveById 960010 960012 950006
SecRuleRemoveById phpids-17
SecRuleRemoveById phpids-20
SecRuleRemoveById phpids-21
SecRuleRemoveById phpids-30
SecRuleRemoveById phpids-61
</LocationMatch>

Bien entendu on relance apache après ça: /etc/init.d/httpd graceful

A+

 

 

Bloquer l’envoie de spams par formulaire

03/04/2012 un commentaire

Pas mal de formulaires sur les pages de contact sont détournés pour envoyer en masse du spams.

Lorsque l’on a un paquet de site sur son serveur ca devient compliqué de regarder chaque formulaire…

Il est possible d’installer mod_security est d’ajouter des directives pour réduire sensiblement cet effet.

j’avais déjà parlé sur cet article de l’installation et de la configuration de mod_security.

Maintenant concernant nos formulaire, il suffit d’éditer le fichier /etc/httpd/modsecurity.d/modsecurity_localrules.conf

et d’ajouter les directives:

SecRule REQUEST_BODY “bcc:|cc:|bcc%3A|cc%3A” t:lowercase,chain
SecRule REQUEST_BODY “[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}\,\x20[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}”
SecRule REQUEST_BODY “bcc:|cc:|bcc%3A|cc%3A” t:lowercase,chain
SecRule REQUEST_BODY “[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}\,[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}”
SecRule REQUEST_BODY “bcc:|cc:|bcc%3A|cc%3A” t:lowercase,chain
SecRule REQUEST_BODY “[A-Za-z0-9._%-]+%10[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}\,\x20[A-Za-z0-9._%-]+%10[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}”
SecRule REQUEST_BODY “bcc:|cc:|bcc%3A|cc%3A” t:lowercase,chain
SecRule REQUEST_BODY “[A-Za-z0-9._%-]+%10[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}\,[A-Za-z0-9._%-]+%10[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}”

SecRule REQUEST_URI “dm.cgi”
SecRule REQUEST_BODY|REQUEST_URI “\.cgi\?m\=state”
SecRule REQUEST_BODY|REQUEST_URI “cgi\?m\=snd”
SecRule REQUEST_BODY|REQUEST_URI “cgi\?m\=icfg”

A+

L’e-maling en 2011 illustré par Sarbacane

19/02/2012 Aucun commentaire

Categories: Web Tags: ,

Jailbreak Iphone 4 IOS 5 [TETHERED]

25/10/2011 29 commentaires

Pour le moment l’Iphone 4 peut être jailbreaké mais uniquement en mode tethered. Ce qui signifie qu’à chaque fois que l’Iphone sera redemarré, le jailbreak aura disparau. Il faudra donc relancer une petite opération en branchant l’iphone sur le PC.

C’est pas le top, mais pour ma part mon Iphone n’est jamais éteint donc en attendant le jailbreak de l’OS 5.0 untethered ca pourra faire à l’affaire

Compatibilité jailbreak IOS 5.0

  1. Iphone 4
  2. Iphone 4GS
  3. Ipad 1
  4. Ipod Touch 3G
  5. Ipod Touch 4G

Ce jailbreak ne fonctionne pas avec:

  • Iphone 4S
  • Ipad 2

Jailbreak Iphone 5.0 avec Redsn0w

  1. Télécharger l’application redsn0w 0.9.9b7 ici pour pc et pour mac
  2. Télécharger le firmware 5.0 de votre iphone/itouch/ipad ici
  3. Dézipper le fichier redsn0w_win_0.9.9b7.zip
  4. Exécuter ensuite le fichier redsn0w.exe
    jailbreak os5 iphone tethered
  5. Cliquer sur Extras
  6. Puis Select IPSW et indiquer où se trouve le firmware qui vient juste d’être téléchargé
    jailbreak os5 iphone tethered
  7. Cliquer ensuite sur BACK
  8. Puis sur Jailbreak
  9. Vérifier que l’installation de Cydia est bien coché
    jailbreak os5 iphone tethered
  10. Brancher l’iphone en USB, le synchroniser avec Itunes pour qu’il fasse une sauvegarde
  11. Eteindre l’iphone
  12. En cliquant sur NEXT, il faut passer en mode DFU. Il y aura un compteur qui va afficher les étapes suivantes:
    - Maintenir 3 secondes le bouton POWER
    - Sans relacher le bouton POWER, maintenir le bouton HOME pendant 10 secondes
    - Relacher le bouton POWER et maintenir le bouton HOME
    A la fin de cette étape, le jailbreak se lance. Si ca ne fonctionne pas, il faut insister
    jailbreak os5 iphone tetheredjailbreak os5 iphone tethered
  13. Une fois terminé, le message DONE! apparait. Fermer la fenêtre. Tout se passe maintenant sur l’Iphone
    jailbreak os5 iphone tethered
  14. L’icone Cydia doit apparaitre sur l’iphone (en blanc), c’est qui est jailbreaké!
    jailbreak os5 iphone tethere

Jailbreak en mode Tethered

Bon l’iphone est jailbreaké mais Cydia ne fonctionne pas pour autant. C’est parce qu’il faut justement utiliser le mode “Just Boot”

  1. Brancher toujours l’iphone au PC
  2. Puis l’eteindre
  3. Lancer Redsnow
  4. Cliquer sur Extra
  5. Puis Just Boot
    jailbreak os5 iphone tethered-7
  6. Il faut à nouveau passer l’iphone en mode DFU lorsqu’on clique sur NEXT
  7. Une fois réalisé, l’iphone redemarre et le logo d’un ananas apparait
  8. Cydia est fonctionnel
    jailbreak os5 iphone tethered
  9. Enjoy!

Si le message “No identifying data fetched” apparait, c’est que vous avez fermé Redsnow entre temps. Il suffit juste de lui préciser à nouveau où se trouve le firmware dans EXTRA -> SELECT IPSW

Pour aller plus loin, quelques sources à ajouter dans cydia:

  • iClarified: http://cydia.iclarified.com/
  • Hackulous: http://cydia.hackulo.us/
  • iSpazio: http://www.ispaziorepo.com/cydia/apt/
  • BigBoss: http://apt.bigboss.us.com/repofiles/cydia/
  • iModZone: http://c.imodzone.net/

A+

Get Adobe Flash playerPlugin by wpburn.com wordpress themes