Система не защищена полностью
Вы совершенно правы, коллега: там API просто гуано, судя по документации, и особенно - исходникам. Не, конечно, разработчики знают, что такое Restful service, даже несмотря на то, что документация чуть-чуть конфликтует между собой, и удаление тендера производится не целостно, что реально режет глаз (вместо наборов POST / PUT туда бы целостный DELETE - и соответствие restful было бы полное, и операция целостная, как при создании)
Но это все фигня, и просто меркнет по сравнению с тупой дырищей, которая открывает всем желающим административные операции над тендерами (например, апдейт закрытого тендера, чего не позволено простым смертным, и т.д.)
Файл
https://github.com/openprocurement/openprocurement.api/blob/master/src/openprocurement/api/views/tender.py строка 532
и всякие прочие режимы Бога в прочих исходниках. Прозрачные торги, мля.
Для этого нужно просто зачитать маркер, который проставлен примитивнейшей базовой аутентификацией. Который тупо и банально в открытом виде закодирован в заголовке "Authorization: Basic" (
http://api-docs.openprocurement.org/en/latest/tutorial.html - кто желает, может расшифровать) обычным base64 кодом. Бугага! Это просто писец! Даже индусы знают, что basic auth. использовать в серьезных системах вообще нельзя, даже под пытками!
В связи с этим особенно обрадуют исходники models.py и вьюшки (там, где режим Бога включается)
Можно, конечно, сказать, что все это - пофигу, мол, у нас все к API по https ходят, на файрволле правила для статических IP прописаны и т.д.
Фигня все это. Даже без man-in-the-middle. Достаточно только включить wireshark на домашнем компьютере, и посмотреть, как на него частенько заходят соседские пакеты (а то, что он даже SSL трафик расшифровывает прекрасно - это, наверное, общеизвестно) - нюансы аппаратуры провайдера, и сразу взгрустнется.
Так что - все печально
