Подписан
Отписаться

Peter M.

+5
Зарегистрировался
«Альфа-банк» взял с меня 4% скрытой комиссии при конвертации валюты, или урок финансовой грамотности за $378
Курс надбавок есть у всех банков, но он может отличаться. При этом, берётся она лишь один раз за такую операцию. Если сравнивать нашу надбавку, то она не будет самой высокой. А вот тут Альфа-Банк врет дважды. Этаразвернуть

Курс надбавок есть у всех банков, но он может отличаться. При этом, берётся она лишь один раз за такую операцию. Если сравнивать нашу надбавку, то она не будет самой высокой.

А вот тут Альфа-Банк врет дважды.
Эта надбавка называется OIF (Optional Issuer Fee).
Во-первых, не у всех банков есть OIF. Как автор поста успешно выяснил, по MasterCard от Тинькофф OIF нулевой (а по Visa 0.5%, хотя банк делает лицо кирпичом, когда об этом заходит речь).
Во-вторых, OIF 4% это реально много, типовой показатель - 2%, некоторые осмеливаются устанавливать 2.5-3. Из-за этого карты Альфа-Банка не пригодны для оплат в "тугриках" (т.е. в прочих валютах помимо основных).

Как продавать через «Яндекс.Маркет» и не остаться без штанов (личный опыт и PHP-скрипт)
Нет, не перепутал. Но вы перепутали, даже ссылку не на ту функцию дали :) Вот верная: https://www.php.net/manual/en/mysqli.real-escape-string.php Идеал наверное у каждого свой. Привлекать полноценную ORM в данномразвернуть

Нет, не перепутал. Но вы перепутали, даже ссылку не на ту функцию дали :) Вот верная: https://www.php.net/manual/en/mysqli.real-escape-string.php

Идеал наверное у каждого свой.
Привлекать полноценную ORM в данном случае это лишнее, можно использовать PDO или какой-нибудь простенький SQL-builder (ну мне они просто нравятся :) ). MySQLi слишком низкоуровневый, пожалуй даже в простых случаях не стоит.
Поэтому наверное самым оптимальным вариантом будет PDO с prepared statements.
https://www.php.net/manual/en/pdo.prepared-statements.php

Как продавать через «Яндекс.Маркет» и не остаться без штанов (личный опыт и PHP-скрипт)
Хм, ничего подобного я не говорил. И 100% решение обеих проблем есть. 1 - написание безопасного кода. Данные, сохраняемые в базу, нужно экранировать. Именно это я показал в примере функцией mysql_real_escape_stringразвернуть

Хм, ничего подобного я не говорил. И 100% решение обеих проблем есть.

1 - написание безопасного кода. Данные, сохраняемые в базу, нужно экранировать. Именно это я показал в примере функцией mysql_real_escape_string. Это 100% решение вопроса: что бы ни пришло в реферере, оно будет сохранено как текст и никогда не будет интерпретировано как SQL.

2 - использование актуального ПО. PHP5 и функции mysql_* устарели, не поддерживаются разработчиками, содержат неисправленные ошибки и уязвимости. Следует использовать PHP 7.2, 7.3, 7.4 и MySQLi или PDO. Это никак не влияет на необходимость думать о безопасном коде, об экранировании данных и прочее. Просто там иные приемы для этого.

Т.е. использование PHP 7.[2-4] и хотя бы MySQLi на 100% решает обе проблемы. Рассматриваемая строка кода в таком случае должна выглядеть примерно так:
mysqli_query($db, "INSERT INTO `log_config` (`from`) VALUES ('".mysqli_real_escape_string($db, getenv("HTTP_REFERER"))."')");

Это тоже не идеал по современным меркам, но по крайней мере не создает проблем безопасности и ошибок.

Как продавать через «Яндекс.Маркет» и не остаться без штанов (личный опыт и PHP-скрипт)
"Нормальные сайты" избавляются от уязвимостей в коде и не надеются на сторонние фильтрации, которые кстати никогда не решат вопрос наразвернуть

"Нормальные сайты" избавляются от уязвимостей в коде и не надеются на сторонние фильтрации, которые кстати никогда не решат вопрос на 100%.
https://ru.stackoverflow.com/questions/524775/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0-%D0%BD%D1%83%D0%B6%D0%BD%D0%BE-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85

Конкретно этот код вы предлагаете вставить в index.php сайта, очевидно он будет выполняться для каждого пользователя, непонятно как можно ограничивать к нему доступ.

Если вам не нужны данные о рефере, то конечно можно заменить и на '1'. Но если все-таки нужны, то нужно правильно экранировать сохраняемые в базу данные:
mysql_query("INSERT INTO `log_config` (`from`) VALUES ('".mysql_real_escape_string(getenv("HTTP_REFERER"))."')");

(на самом деле в настоящее время также нельзя использовать функции mysql_* и PHP5 в целом, разработчики прекратили их поддержку, они сами по себе потенциальные уязвимости)

Это самые основы программирования на PHP.

Как продавать через «Яндекс.Маркет» и не остаться без штанов (личный опыт и PHP-скрипт)
С точки зрения информационной безопасности категорически не стоит использовать эти коды без полного ревью и/или переписывания адекватным программистом. Автору: ваш магазин еще жив? Надеюсь у вас есть резервные копииразвернуть

С точки зрения информационной безопасности категорически не стоит использовать эти коды без полного ревью и/или переписывания адекватным программистом.

Автору: ваш магазин еще жив? Надеюсь у вас есть резервные копии всего. Советую полностью закрыть магазин от какого-либо внешнего влияния и заниматься только поиском и устранением уязвимостей.

Почему? А посмотрите что например там есть:
mysql_query("INSERT INTO `log_config` (`from`) VALUES ('".getenv("HTTP_REFERER")."')");
(примитивная SQL-инъекция, позволяет кому угодно в сети получить доступ к вашей базе данных)

Прямой эфир