Фон:
Я розробляю схему аутентифікації для веб-сервісу REST. Це не дуже потрібно захищати (це більше особистий проект), але я хочу зробити це максимально безпечним, як вправа / навчання. Я не хочу використовувати SSL, оскільки я не хочу клопоту і, головним чином, за рахунок його налаштування.
Ці питання ТА були особливо корисними для того, щоб почати мене:
- RESTful аутентифікація
- Кращі практики забезпечення API / веб-сервісу REST
- Приклади кращих веб-API SOAP / REST / RPC? І чому вони вам подобаються? І що з ними?
Я думаю про використання спрощеної версії аутентифікації Amazon S3 (мені подобається OAuth, але це здається занадто складним для моїх потреб). Я додаю до запиту випадково згенерований безвіз , наданий сервером, щоб запобігти повторним атакам.
Щоб перейти до питання:
І S3, і OAuth покладаються на підписання URL-адреси запиту разом із кількома вибраними заголовками. Жоден з них не підписує орган запиту на запити POST або PUT. Чи не вразлива ця атака "посередника", яка зберігає URL-адресу та заголовки та замінює орган запиту будь-якими даними, які зловмисник хоче?
Здається, я можу захиститись від цього, включивши хеш тіла запиту в рядок, який підписується. Це безпечно?