Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Захват utm меток

#php #javascript #инспекция_кода


Вот сделал чтоб отправлялись utm метки вместе с формой






Скажите правильно ли? и можно ли это на js сделать?    


Ответы

Ответ 1



лучше так В вашем коде если не будет гет запросов - выбьет ошибку Undefined index utm_source и т.д.

Ответ 2



Нет, неправильно. Представь, что в utm_source окажется строка 1"> Это XSS-уязвимость, позволяющая выполнять любой код на твоём сайте. Вероятно, следует использовать htmlspecialchars для экранирования. Тогда получится 1"><script>alert('Cracked!')</script><input value=" и оно полностью попадёт в значение:

Ответ 3



Я как то для одного проекта писал функцию, возможно она вам пригодиться function get_utm(){ // если мы не знаем реферала if (!isset($_COOKIE['referer'])) { // то запоминаем его setcookie('referer', $_SERVER['HTTP_REFERER'], time()+30); $utm_referer = $_SERVER['HTTP_REFERER']; // А это реферер, если знаем куки и реферер вообще в наличии }else{ $utm_referer = $_COOKIE['referer']; } // запоминаем utm-метки if (isset($_GET['utm_source']) && !isset($_COOKIE['utm_source'])) { foreach ($_GET as $key => $val) { if (0 === strpos($key, 'utm')) { setcookie($key, $val, time()+30); $utm .= "$key: $val\n"; } } }else{ // Выводим все массивы в переменную $utm_result, если есть куки foreach ($_COOKIE as $key_utm => $val_utm) { if (0 === strpos($key_utm, 'utm')) { $utm .= "$key_utm: $val_utm\n"; } } } // Добавляем рефера и проверяем если значение не пустое if($_SERVER['HTTP_REFERER'] != '') $utm .= "utm_referer: $utm_referer\n"; // фильтруем $utm_result = htmlspecialchars($utm, ENT_QUOTES, 'UTF-8'); // Выводим весь результат return $utm_result; }

Комментариев нет:

Отправить комментарий