Как не нужно устанавливать код электронной коммерции

Установка электронной коммерции на сайт — несложная задача.

Например для того что бы отправить информацию о заказе, требуется установить код на финальном шаге оформления:

dataLayer.push({ 'ecommerce': { 'purchase': { 'actionField': { 'id': 'T12345', 'affiliation': 'Online Store', 'revenue': '35.43', 'tax':'4.90', 'shipping': '5.99', 'coupon': 'SUMMER_SALE' } } ... });

Поддерживая интернет магазин на Битриксе с решением от АСПРО, я был приятно удивлен, что вся установка сводится к тому, что бы поставить 2 галочки.

Все же решил проверить как это устроено и оказалось не зря. На сайте есть хитрый файл /ajax/goals.php куда идет запрос на получение нужных данных:

$.ajax({ url:arNextOptions['SITE_DIR'] + "ajax/goals.php", dataType: "json", type: "POST", data: {"ORDER_ID": order_id, "TYPE": type}, success: function(order){ var products = []; if(order.ITEMS){ for(var i in order.ITEMS){ products.push({ "id": order.ITEMS[i].ID, "sku": order.ITEMS[i].ID, "name": order.ITEMS[i].NAME, "price": order.ITEMS[i].PRICE, "brand": order.ITEMS[i].BRAND, "category": order.ITEMS[i].CATEGORY, "quantity": order.ITEMS[i].QUANTITY }); } } ... });

Вот так выглядит файл /ajax/goals.php

Только вот разработчики АСПРО не учли, что обращение к файлу никак не защищено, и любой желающий может получить информацию по любому заказу, отправив нужный ID.

Не стоит создавать подобные файлы, либо защищайте запросы токенами или другими способами.

0
Комментарии
-3 комментариев
Раскрывать всегда