В даний час я інтегрую транзакцію NABплатіжний шлюз в магазин електронної комерції. Після обробки платежу система транзакцій NAB надсилає запит POST до нашої кінцевої точки, щоб ми могли обробити результат.
Проблема полягає в тому, що запит POST не міститьбезпечний хеш / маркер, який ми можемо використовувати для відправки назад в систему транзакції NAB для перевірки автентичності, що запит є справжнім і не підробленим. Ще гірше, система NAB Transact навіть не має API для будь-якої аутентифікації будь-якої інформації, по суті, дуже поганої безпеки!
Чи є спосіб надійної автентифікації цих данихзапитів? Наприклад, перевірка того, що запити надходять зі списку відомих IP-адрес, на які працює система транзакцій NAB? Або зворотний пошук IP? Які варіанти існують і як ви реалізуєте це в PHP?
Чи не покладатися на перевірку автентичності IP не так безпечно, оскільки його можна підробити?
Відповіді:
0 для відповіді № 1Проблема полягає в тому, що запит POST не містить захищеного хешу / маркера що ми можемо використовувати для відправки назад до системи NAB Transact аутентифікуйте, що запит є реальним і не підроблений
Ага - це проблема в порядку:)
Чи не покладатися на перевірку автентичності IP не так безпечно, оскільки це може бути підмінити?
Це не на всіх безпечних!
1 для відповіді № 2
Перевірка автентичності на основі IP-адрес дозволена, якщо ви:
- знати список IP-адрес (тобто ті, що використовуються платіжним постачальником)
- IP-адреси статичні (очевидно, але якщо запит фактично надіслано постачальником, а не, наприклад, через приховану форму на сторінці "успішний платіж", що стосується цього
- вони негайно сповіщають про будь-які зміни (або ваш сценарій може відхилити чинні запити або прийняти запити від IP-адрес, які більше не використовуються постачальником)
- всі системи, які можуть використовувати IP-адресу (тобто сервери провайдера платежів, які вважають, що центр даних не використовує певні налаштування мережі, достатньо довіряють, щоб не надсилати помилкових повідомлень.
Помилка вихідного IP-адреси неможлива, оскільки TCP використовує тристороннє рукостискання і з підробленим IP-повідомленням рукостискання не відбудеться.
Отже: Перевірка автентичності за IP-адресою є прийнятною, якщо виконано деякі основні критерії (див. Вище), але, звичайно, це буде більш безпечним, якщо вони нададуть вам спосіб перевірки сповіщення - або шляхом виклику API на їхній стороні або за допомогою криптографічного підпису (краще, оскільки не може вийти з ладу через недоступний віддалений сервер).