Я делаю wss://
подключение к трещотка (библиотека сокетов PHP) с использованием SocketRocket (библиотека сокетов Objective-c).
Я планирую отправить личные данные через это сокет-соединение, а затем отправить данные обратно на сервер с https://
запрос.
Код объекта-c:
//initiate global variable
@property (nonatomic) NSMutableArray* keys;
...
//receive the private data with SocketRocket
- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(nonnull NSString *)string
{
[_keys insertObject:string];
}
...
//$_POST the file data with sthttp
STHTTPRequest *r = [STHTTPRequest requestWithURLString:@"https://example.com/test.php"];
r.POSTDictionary = @{ @"key":_keys[0] };
...
Есть ли какой-нибудь возможный способ, которым клиент может перехватить эти личные данные (в пределах причины [переполнение буфера, человек посередине и т. Д …])?
Если вы используете протоколы wss: // и https: //, вам не нужно беспокоиться о человеке в средней атаке, так как все отправляемые данные в любом случае зашифрованы.
Однако, если при каких-либо обстоятельствах вам необходимо отправить данные по небезопасному протоколу или строке запроса URL-адреса, вы можете зашифровать данные самостоятельно, используя открытый SSL-модуль PHP, и отправить их в виде открытого текста (например, $ _ GET params).
Пример:
http://php.net/manual/en/book.openssl.php#91210
В этом примере $crypttext
будут двоичные данные. Это может быть закодировано в строку base64 и закодирован URL, если вам нужно отправить его через запрос GET или POST.
urlencode(base64_encode($crypttext))
На принимающей стороне вы можете декодировать base64 и url-декодирование, чтобы получить двоичную информацию, а затем расшифровать данные, используя закрытый ключ, как показано в примере.
base64_decode(urldecode($crypttext)
Я бы порекомендовал, чтобы все ваши сертификаты были обновлены и чтобы ваш сертификат закрытого ключа был защищен и не был доступен никому, кроме вас.
Следует помнить, что если вы ведете какую-либо запись в журнал, вы можете в конечном итоге записать в журнал данные, которые хотите защитить. Я бы дважды проверил вашу политику регистрации и убедился, что вы согласны с ней. Иногда информация передается по URL-адресу в виде параметров запроса, а затем они заносятся в файлы журналов сервера.
Если есть какая-либо история, которую вы сохраняете, обязательно проверьте это или какие-либо кеши на мобильных устройствах на всякий случай.
Примечание: вы захотите использовать протоколы TLS + с шифрованием sha256 + с защищенными шифрами.
Примечание. Протокол SSL + небезопасен и может быть восприимчивым к человеку посредине.
Замечания:
1. Убедитесь, что вы создали сертификат с sha256 +
2. Имейте сертификат, подписанный.
3. Настройте Apache или веб-сервер для использования SSL с комплектами шифрования TLS и Secure.
4. Убедитесь, что каждый хост доверяет ssl других хостов. (Если два пути)
Извините, что так обычно, но нужно больше информации.
С Уважением,
Wesley