В генераторе кода Swagger (https://github.com/swagger-api/swagger-codegen), применяемом для создания RESTful web-сервисов, соответствующих спецификации OpenAPI (https://en.wikipedia.org/wiki/OpenAPI_Specification), выявлена
уязвимость (https://community.rapid7.com/community/infosec/blog/2016/06/... которая может привести к выполнению кода на стороне сервера или клиента, через подстановку специальных параметров в документы Swagger, на основе которых производится динамическая генерация обработчиков API.
Проблема затрагивает RESTful-обработчики, созданные с использованием кода, автоматически сгенерированного при помощи Swagger. В том числе обработчики, сгенерированные для языков JavaScript/Node.JS, PHP, Ruby и Java (важно отметить, что вопреки заявлениям некоторых СМИ, проблема не затрагивает непосредственно Node.JS, PHP, Ruby и Java, а касается только проектов на данных языках, применяющих swagger-codegen для генерации кода RESTful API на основе непроверенных документов Swagger).Например, код на Java и PHP, который будет выполнен при вызове динамически сгенерированного обработчика, можно внедрить в документ Swagger следующим образом:
"paths": {
"/a\"; try{java.lang.Runtime.getRuntime().exec(\"ls\");}catch(Exception e){} \"":
"definitions": {
"d": {
"type": "object",
"description": "*/ echo system(chr(0x6c).chr(0x73)); /*",
URL: https://community.rapid7.com/community/infosec/blog/2016/06/...
Новость: http://www.opennet.me/opennews/art.shtml?num=44670
>java.lang.Runtime.getRuntime().exec(...)Энтерпрайзненько.
Воистину восхитительно, даже безо всякого хипстогенератора
Напиши импорт - будет короче. В питоне то же самое.
Не то же. В питоне импорт - отдельная запись в namespace.
Как импортируешь, то и будет.
Поэтому и есть разница между
import os
и
from os import *
Разница будет в том, как будет называться результирующая функция.
В первом случае она будет находиться как os.<func_name>, а во втором случае - просто func_name.
Чем это отличается от import static? Вердикт: то же самое.http://docs.oracle.com/javase/1.5.0/docs/guide/language/stat...
Мне кажется восхитительно не это, а вызов утилиты ls из джава кода.Подобные приемчики смердят на любом языке, хоть питон, хоть джава.
По аналогии с авторскими отчислениями с устройства, каждый компьютер должен предоставлять хакерам часть своих ресурсов.
Swaggerкто-то где-то пользует???
Да
Какие более лучшие решения вам известны?
swagger отменная вещь для написания документации по REST API.
Особенно его свыше с gradle и asciidoc
На пуре-джяве с io.netty рестсервис без всяких своггеров делается за 15 минут с перекурами и кофебрейком. Кому нафиг оно ваще надо?
Вы понимаете разницу между написанием (кодогенерацией) рест-сервиса и написанием документации к нему?
А! Так Вы написали новый javadoc? Ну так круто че. Есть вон еще писатели, которые Kotlin забацали. Вот только туда же - не надо. Че-нить типа спринга, если осилите - всегда велкам, а гламурные гаечные ключи - в сад.
И вновь вы ничего не поняли. Почитайте, чем они отличаются, прежде чем открывать рот и озвучивать свое ценное мнение
Все идет от излишнего за*тства. Зачем мужик вообще генерирует чего-то? Зачем все эти языки? Почему нельзя просто добавлять три типа списков в базу данных и не радоваться ситуации? Что за тотальный #*изм развели?