{"issue":{"created_at":"2011-11-29T21:01:03Z","state":"open","updated_at":"2011-11-29T21:01:08Z","user":{"gravatar_id":"02c8f3c5cd56551b510e61ab671abc87","id":1224532,"url":"https://api.github.com/users/jantheofel","avatar_url":"https://secure.gravatar.com/avatar/02c8f3c5cd56551b510e61ab671abc87?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jantheofel"},"comments":4,"body":"Wenn man generell die Referer-Prüfung (was ja in 2.10 eigentlich zur Token-Prüfung wird) generell nutzen möchte, wäre es sehr hilfreich einzelne Domains von der Prüfung ausnehmen zu können. Zwei Anwendungsbeispiele:\n1. Facebook Fanseiten können Contao-Inhalte als iframe einbinden (seit etwa April möglich) und senden dabei immer per POST Informationen mit (z.B. ob es sich um einen normalen Besucher oder einen Fan der eigenen Fanseite handelt).\n2. Fremde Webseiten sollen gezielt für das POST an bestimmte Formulare freigeschaltet werden.\n\nDazu schlage ich eine kommasperatierte Liste in den Einstellungen und dazu folgende Implementierung vor:\n\nsystem/config/config.php respektive system/config/localconfig.php ergänzen:\n\n```\n$GLOBALS['TL_CONFIG']['refererWhiteList']    = '';\n```\n\nsystem/modules/backend/dca/tl_settings.php Palatte ergänzen:\n\n```\n[...]displayErrors,debugMode,disableRefererCheck,disableIpCheck,refererWhiteList;{files_legend:hide}[...]\n```\n\nund ergänzen:\n\n```\n                'refererWhiteList' => array\n                (\n                        'label'                   => &$GLOBALS['TL_LANG']['tl_settings']['refererWhiteList'],\n                        'inputType'               => 'text',\n                        'eval'                    => array('tl_class'=>'long')\n                ),\n```\n\nDie Anfrage erfolgt in system/initialize.php:\n\n```\nif ($_POST && \n\n![]($GLOBALS['TL_CONFIG']['disableRefererCheck'])\n{\n        // Check for whitelisting\n        $whitelisted = 0;\n        foreach(trimsplit(',', $GLOBALS['TL_CONFIG']['refererWhiteList']) as $white)\n        {\n                if(preg_match(\"/\".$white.\"$/\", $referer['host']))\n                {\n                        $whitelisted++;\n                }\n        }\n\n        // Exit if the token cannot be validated\n        if ()$whitelisted && (\n\n![]($objInput->post('REQUEST_TOKEN') || )is_array($_SESSION['REQUEST_TOKEN'][TL_MODE]) || !in_array($objInput->post('REQUEST_TOKEN'), $_SESSION['REQUEST_TOKEN'][TL_MODE])))\n        {\n```\n\n--- _Originally created on June 14th, 2011, at 02:19pm (ID 3164)_","assignee":null,"id":2392956,"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"number":3164,"labels":[{"name":"Feature","color":"4183c4","url":"https://api.github.com/repos/contao/import/labels/Feature"},{"name":"framework","color":"e6e6e6","url":"https://api.github.com/repos/contao/import/labels/framework"}],"title":"Whitelist für Referer bzw. Token-Prüfung","closed_at":null,"html_url":"https://github.com/contao/import/issues/3164","url":"https://api.github.com/repos/contao/import/issues/3164","milestone":null},"action":"created","comment":{"created_at":"2011-11-29T21:01:07Z","updated_at":"2011-11-29T21:01:07Z","user":{"gravatar_id":"256406243346b9253f8610fb1d1e05f6","id":1215373,"url":"https://api.github.com/users/importer","avatar_url":"https://secure.gravatar.com/avatar/256406243346b9253f8610fb1d1e05f6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"importer"},"body":"IMO beides, der Core sollte die Tokens selbst checken, wenn dies nicht erfolgreich war, dann kommt ein HOOK ins Spiel, welcher weitere POST-Tests machen kann (wie die von Jan angesprochene Signatur checken - OAuth etc.).\n\nWenn also eines der registrierten Verfahren den POST als valide anerkennt, ist alles in Ordnung.\n\n--- _Originally created by xtra on July 7th, 2011, at 05:18pm_","id":2948077,"url":"https://api.github.com/repos/contao/import/issues/comments/2948077"}}