Как подписать и защитить данные запроса? Стоит задача защитить запрос вида, от: 1. Перебора $ORDERID 2. Видимости $ORDERID 3. Знать что запрос пришел оттуда, где его создали, а не "вручную" /payment/$ORDERID/ /payment/$USERID/ Вначале была идея: /payment/$ORDERID/$SIGN, где $SIGN = hash( 'sha256', $orderID . $this->salt) Но думаю этого недостаточно. Хочется не светить $ORDERID и $USERID Есть ли смысл использовать:$nonceSize = openssl_cipher_iv_length($METHOD); $nonce = openssl_random_pseudo_bytes($nonceSize); $ciphertext = openssl_encrypt( $message, $METHOD, $key, OPENSSL_RAW_DATA, $nonce ); return base64_encode($nonce.$ciphertext); Чтобы получить просто запрос, без подписи: /payment/$CRYPTEDDATA $CRYPTEDDATA = crypt($ORDERID); Или нужно еще добавлять хэш? Или шифрования достаточно? Не хочется усложнять до уровня бреда.
Использование шифрования данных в запросе - хороший способ защитить информацию от перебора и недопустимой видимости. Однако, для обеспечения безопасности запроса можно добавить дополнительные слои защиты.
Для защиты от перебора можно использовать дополнительную проверку, например, включение временного ограничения на количество запросов с одного IP адреса за определенный промежуток времени.
Чтобы обеспечить безопасность запроса и обеспечить его происхождение, можно использовать метод аутентификации, такой как HMAC (Hash-based Message Authentication Code), который позволяет проверить целостность запроса и убедиться, что он был создан именно авторизованным пользователем или системой.
Таким образом, вместо простого шифрования данных в запросе, можно также добавить HMAC для подписи запроса. Например, при формировании запроса /payment/$ORDERID/ можно добавить строку с подписью HMAC и валидировать ее при получении запроса, чтобы удостовериться в его подлинности.
Каждый новый уровень защиты добавляет дополнительный слой безопасности, однако важно учитывать баланс между безопасностью и удобством использования. Поэтому рекомендуется выбирать те методы защиты, которые соответствуют уровню чувствительности информации и предоставляют необходимую безопасность без излишеств.
Использование шифрования данных в запросе - хороший способ защитить информацию от перебора и недопустимой видимости. Однако, для обеспечения безопасности запроса можно добавить дополнительные слои защиты.
Для защиты от перебора можно использовать дополнительную проверку, например, включение временного ограничения на количество запросов с одного IP адреса за определенный промежуток времени.
Чтобы обеспечить безопасность запроса и обеспечить его происхождение, можно использовать метод аутентификации, такой как HMAC (Hash-based Message Authentication Code), который позволяет проверить целостность запроса и убедиться, что он был создан именно авторизованным пользователем или системой.
Таким образом, вместо простого шифрования данных в запросе, можно также добавить HMAC для подписи запроса. Например, при формировании запроса /payment/$ORDERID/ можно добавить строку с подписью HMAC и валидировать ее при получении запроса, чтобы удостовериться в его подлинности.
Каждый новый уровень защиты добавляет дополнительный слой безопасности, однако важно учитывать баланс между безопасностью и удобством использования. Поэтому рекомендуется выбирать те методы защиты, которые соответствуют уровню чувствительности информации и предоставляют необходимую безопасность без излишеств.