Я поддерживаю сайт магазина с низким трафиком, который хранит номера кредитных карт в базе данных. Это не правильно (или даже законно, я верю), поэтому я меняю способ хранения чисел.
При структурировании сайта страница информации о кредитных картах отправляется на себя, проверяет данные, сохраняет данные в БД, а затем перенаправляет пользователя на страницу подтверждения cc, где проверяется cc и размещается заказ. После этого они снова перенаправляются на страницу завершения заказа. В любом случае, чтобы получить номер cc со страницы cc info на странице подтверждения, я думал об использовании сеанса, но я беспокоюсь об уязвимостях и пытаюсь разобраться с ними (я читаю эту ссылку. и это ). Я могу сохранить номер копии в сеансе, получить его на следующей странице, использовать его и unset()
, и он исчезнет в течение нескольких секунд (также обратите внимание, что эти страницы используют SSL). Что-то вроде:
Копия информационной страницы:
session_start();
$_SESSION['card_number'] = $_POST['cardnumber']; //please tell me if there are vulnerabilities here setting directly from $_POST
...
header(sprintf("Location: %s", $insertGoTo));
Страница подтверждения cc:
session_start();
//retrieve $_SESSION['card_number']
unset($_SESSION['card_number']);
Только сессия # хранится в сеансе, остальная информация о cc находится в базе данных. Хотя я не думаю, что кто-то может многое сделать только с помощью cc #, он все же должен быть максимально защищен.
Учитывая, что я использую session.use_trans_sid = 0
и session.use_only_cookies = 1
(где идентификаторы сеанса обрабатываются только с помощью файлов cookie, а не URL-адресов (не уверен, зачем мне нужны оба)), и учитывая мое использование этой конкретной переменной сеанса, уязвим ли этот код для фиксация сеанса? Было бы полезно восстановить идентификатор сеанса (после или до?) Я установил cc # в session
в этом случае? Я предполагаю, что да, и, поскольку протокол к этому моменту является SSL, я также предполагаю, что после регенерации session
я буду защищен настолько, насколько SSL получит меня?
Итак, мой главный вопрос заключается в том, чтобы, следуя этим инструкциям на моем сайте, опытному злоумышленнику было бы достаточно сложно зафиксировать / угнать сеанс, чтобы получить cc # пользователя за количество времени, в течение которого он существует (примерно 3-15 секунд) ? Если нет, то как, если возможно, я могу получить это к этому моменту?