{"id":41,"date":"2012-04-21T19:35:00","date_gmt":"2012-04-21T19:35:00","guid":{"rendered":"http:\/\/www.olivierdoucet.info\/wordpress\/?p=41"},"modified":"2012-04-21T19:35:00","modified_gmt":"2012-04-21T19:35:00","slug":"certains-de-mes-champs-post-sont-ignores-par-php","status":"publish","type":"post","link":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/","title":{"rendered":"\u00ab\u00a0Certains de mes champs POST sont ignor\u00e9s par PHP !\u00a0\u00bb"},"content":{"rendered":"<p>J&rsquo;ai eu ce genre de message plusieurs fois de la part de clients ces derniers temps, et je pense que cela peut concerner beaucoup de monde donc je vous donne les explications.<\/p>\n<p>Le sympt\u00f4me est simple&nbsp;: \u00ab\u00a0Les X premiers champs envoy\u00e9s en POST sont bien lus par PHP, mais \u00e0 partir d&rsquo;une certaine limite ceux-ci ne sont plus disponibles.\u00a0\u00bb Ou formul\u00e9 autrement&nbsp;: \u00ab\u00a0il me manque une partie des champs POST\u00a0\u00bb.<\/p>\n<p>Le plus curieux dans cette histoire, c&rsquo;est que votre code PHP fonctionnait tr\u00e8s bien il y a quelques semaines, et l\u00e0 d&rsquo;un seul coup, plus rien. Que s&rsquo;est-il pass\u00e9&nbsp;?<\/p>\n<p>Vous n&rsquo;\u00eates pas en tord, et pourtant il va vous falloir faire des modifications sur la config de PHP \ud83d\ude42 Le coupable&nbsp;? Un trou de s\u00e9curit\u00e9 dans PHP assez s\u00e9rieux, qu&rsquo;il a fallu corriger rapidement et donc &#8230; de mani\u00e8re un peu abrupte. Les curieux pourront lire le rapport de s\u00e9curit\u00e9 ici&nbsp;: &nbsp;<a href=\"http:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2011-4885\" hreflang=\"en\" title=\"http:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2011-4885\">http:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2011-4885<\/a><\/p>\n<p>&nbsp;Pour r\u00e9sumer en quelques mots&nbsp;: il s&rsquo;agit d&rsquo;une attaque par amplification. Une personne avec de mauvaises intentions peux envoyer un formulaire avec un certain formatage \u00e0 votre serveur web, et PHP va mettre plusieurs minutes \u00e0 la traiter &#8230; Multipliez \u00e7a par quelques centaines, et voil\u00e0 votre h\u00e9bergement dans les choux pour plusieurs heures. Je ne vous expliquerais pas dans cet article comment exploiter cette faille \ud83d\ude09<\/p>\n<p>Pour limiter le champs de l&rsquo;attaque, l&rsquo;\u00e9quipe de d\u00e9veloppement PHP a mis en place une limite simple&nbsp;: A partir de 1000 champs POST (d&rsquo;ailleurs, c&rsquo;est la m\u00eame limite sur des cookies ou GET), PHP ignore tous les champs suivants. Donc si vous avez un tr\u00e8s grand formulaire avec des milliers de champs, il va vous en manquer un bout.<\/p>\n<p>Normalement, PHP vous pr\u00e9vient qu&rsquo;il a d\u00fb tailler dans le vif avec ce message d&rsquo;erreur&nbsp;: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini.<\/p>\n<p>Cela vous explicite donc le correctif&nbsp;: il suffit de modifier (ou plut\u00f4t ajouter, car je doute que vous l&rsquo;ayez d\u00e9j\u00e0) la variable max_input_vars dans votre fichier de configuration php.ini (qui se trouve g\u00e9n\u00e9ralement dans \/etc sous Linux) et de lui mettre une grande valeur qui permettra \u00e0 votre formulaire de fonctionner.<\/p>\n<p>Et c&rsquo;est tout&nbsp;?<\/p>\n<p>Oui, mais prenez garde&nbsp;: cette limitation \u00e9tait une limite de s\u00e9curit\u00e9. Donc augmenter la limite vous expose \u00e0 l&rsquo;attaque initiale. D&rsquo;exp\u00e9rience, vous pouvez monter \u00e0 5000 ou 10000 si vous avez des configurations relativement r\u00e9centes. Au del\u00e0, c&rsquo;est \u00e0 vos risques et p\u00e9rils.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai eu ce genre de message plusieurs fois de la part de clients ces derniers temps, et je pense que cela peut concerner beaucoup de monde donc je vous donne les explications. Le sympt\u00f4me est simple&nbsp;: \u00ab\u00a0Les X premiers champs envoy\u00e9s en POST sont bien lus par PHP, mais \u00e0 partir d&rsquo;une certaine limite ceux-ci &hellip; <a href=\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">\u00ab\u00a0Certains de mes champs POST sont ignor\u00e9s par PHP !\u00a0\u00bb<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-php-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>&quot;Certains de mes champs POST sont ignor\u00e9s par PHP !&quot; - My thoughts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"&quot;Certains de mes champs POST sont ignor\u00e9s par PHP !&quot; - My thoughts\" \/>\n<meta property=\"og:description\" content=\"J&rsquo;ai eu ce genre de message plusieurs fois de la part de clients ces derniers temps, et je pense que cela peut concerner beaucoup de monde donc je vous donne les explications. Le sympt\u00f4me est simple&nbsp;: \u00ab\u00a0Les X premiers champs envoy\u00e9s en POST sont bien lus par PHP, mais \u00e0 partir d&rsquo;une certaine limite ceux-ci &hellip; Continuer la lecture de \u00ab\u00a0Certains de mes champs POST sont ignor\u00e9s par PHP !\u00a0\u00bb &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/\" \/>\n<meta property=\"og:site_name\" content=\"My thoughts\" \/>\n<meta property=\"article:published_time\" content=\"2012-04-21T19:35:00+00:00\" \/>\n<meta name=\"author\" content=\"olivier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@odoucet\" \/>\n<meta name=\"twitter:site\" content=\"@odoucet\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"olivier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/\",\"name\":\"\\\"Certains de mes champs POST sont ignor\u00e9s par PHP !\\\" - My thoughts\",\"isPartOf\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\"},\"datePublished\":\"2012-04-21T19:35:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.olivierdoucet.info\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00ab\u00a0Certains de mes champs POST sont ignor\u00e9s par PHP !\u00a0\u00bb\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/\",\"name\":\"My thoughts\",\"description\":\"En fran\u00e7ais and in english :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\",\"name\":\"olivier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"caption\":\"olivier\"},\"sameAs\":[\"http:\/\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\"Certains de mes champs POST sont ignor\u00e9s par PHP !\" - My thoughts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/","og_locale":"fr_FR","og_type":"article","og_title":"\"Certains de mes champs POST sont ignor\u00e9s par PHP !\" - My thoughts","og_description":"J&rsquo;ai eu ce genre de message plusieurs fois de la part de clients ces derniers temps, et je pense que cela peut concerner beaucoup de monde donc je vous donne les explications. Le sympt\u00f4me est simple&nbsp;: \u00ab\u00a0Les X premiers champs envoy\u00e9s en POST sont bien lus par PHP, mais \u00e0 partir d&rsquo;une certaine limite ceux-ci &hellip; Continuer la lecture de \u00ab\u00a0Certains de mes champs POST sont ignor\u00e9s par PHP !\u00a0\u00bb &rarr;","og_url":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/","og_site_name":"My thoughts","article_published_time":"2012-04-21T19:35:00+00:00","author":"olivier","twitter_card":"summary_large_image","twitter_creator":"@odoucet","twitter_site":"@odoucet","twitter_misc":{"\u00c9crit par":"olivier","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/","url":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/","name":"\"Certains de mes champs POST sont ignor\u00e9s par PHP !\" - My thoughts","isPartOf":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#website"},"datePublished":"2012-04-21T19:35:00+00:00","author":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96"},"breadcrumb":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/21\/certains-de-mes-champs-post-sont-ignores-par-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.olivierdoucet.info\/blog\/"},{"@type":"ListItem","position":2,"name":"\u00ab\u00a0Certains de mes champs POST sont ignor\u00e9s par PHP !\u00a0\u00bb"}]},{"@type":"WebSite","@id":"https:\/\/www.olivierdoucet.info\/blog\/#website","url":"https:\/\/www.olivierdoucet.info\/blog\/","name":"My thoughts","description":"En fran\u00e7ais and in english :)","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96","name":"olivier","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","caption":"olivier"},"sameAs":["http:\/\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":0,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}