2010-11-02 29 views
0

Voici un exemple de $ _POST données de IPN de PayPal:blocs de fichiers .htaccess notification de paiement de PayPal

cmd=_notify-validate 
&test_ipn=1 
&payment_type=instant 
&payment_date=18%3A49%3A30+Nov+01%2C+2010+PDT 
&payment_status=Completed 
&address_status=unconfirmed 
&payer_status=unverified 
&first_name=John 
&last_name=Smith 
&payer_email=buyer 
%40paypalsandbox.com 
&payer_id=TESTBUYERID01 
&address_name=John+Smith 
&address_country=United+States 
&address_country_code=US 
&address_zip=95131 
&address_state=CA 
&address_city=San+Jose 
&address_street=123%2C+any+street 
&business=seller%40paypalsandbox.com 
&receiver_email=seller%40paypalsandbox.com 
&receiver_id=TESTSELLERID1 
&residence_country=US 
&item_name=something 
&item_number=AK-1234 
&quantity=1 
&shipping=3.04 
&tax=2.02 
&mc_currency=USD 
&mc_fee=0.44 
&mc_gross=10 
&mc_gross_1=10 
&txn_type=web_accept 
&txn_id=30112149 
&notify_version=2.1 
&custom=10points 
&charset=windows-1252 
&verify_sign=AFcWxV21C7Zyy8mw-cdzleMW.oxFXxXE 

Lorsque je tente d'envoyer avec mon fichier .htaccess je reçois une erreur 403.

.htaccess:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR] 
RewriteCond %{THE_REQUEST}  ^.*(\\r|\\n|%0A|%0D).* [NC,OR] 

RewriteCond %{HTTP_REFERER} ^(.*)(<|>|’|%0A|%0D|%27|%3C|%3E|%00).* [NC,OR] 
RewriteCond %{HTTP_COOKIE}  ^.*(<|>|’|%0A|%0D|%27|%3C|%3E|%00).* [NC,OR] 
RewriteCond %{REQUEST_URI}  ^/(,|;|:|<|>|”>|”<|/|\\\.\.\\).{0,9999}.* [NC,OR] 

RewriteCond %{HTTP_USER_AGENT} ^$ [OR] 
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|scan).* [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|’|%0A|%0D|%27|%3C|%3E|%00).* [NC,OR] 

RewriteCond %{QUERY_STRING} ^.*(;|<|>|’|”|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark).* [NC,OR] 
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\.0\.0\.1).* [NC,OR] 
RewriteCond %{QUERY_STRING} ^.*\.[A-Za-z0-9].* [NC,OR] 
RewriteCond %{QUERY_STRING} ^.*(<|>|’|%0A|%0D|%27|%3C|%3E|%00).* [NC] 
RewriteRule .* - [F] 

Comment puis-je modifier le fichier .htaccess pour le rendre permettre aux $ _POST données?

Répondre

0

Trouvé le pécheur:

RewriteCond% {HTTP_USER_AGENT}^$ [OR]

0

Vous pouvez activer la journalisation sur le moteur de réécriture. (Juste pour le débogage.) Vous verrez la règle exacte où est meurt.

+0

ajoutant RewriteLog "rewrite.log" .htaccess donne un serveur erreur .. damn – ganjan

+0

Erreur que le journal est désactivé, ou que vous écrivez à un emplacement que vous n'avez pas permision? – nonot1

0

Peut-être cette ligne:

RewriteCond %{QUERY_STRING} ^.*\.[A-Za-z0-9].* [NC,OR] 

Je crois que tout est correspondant sur arrêt complet suivant par un caractère alphanumérique dans la chaîne de requête. On dirait que échouerait demandes comme "expédition = 3,04"

+0

Non. Un seul passage – ganjan