Итак, я делаю онлайн-приложение, в котором пользователь может отправить код, и результат будет показан пользователю. Я сделал Security главного приоритета и принял следующие шаги, чтобы убедиться, что код работает надежно:Запуск C++ в VM, безопасно
- Выполнение кода на виртуальной машине, На VPS, что только использование для запуска этой ВМ. Эти виртуальные машины не позволяют подключиться к сети или файлам через рабочий каталог.
Используя следующие G ++ флаги:
-O -std=c++98 -pedantic-errors -Wfatal-errors -Werror -Wall -Wextra -Wno-missing-field-initializers -Wwrite-strings -Wno-deprecated -Wno-unused -Wno-non-virtual-dtor -Wno-variadic-macros -fmessage-length=0 -ftemplate-depth-128 -fno-merge-constants -fno-nonansi-builtins -fno-gnu-keywords -fno-elide-constructors -fstrict-aliasing -fstack-protector-all -Winvalid-pch
Мой вопрос я думаю, на самом деле, как я могу сделать это любой более безопасным? Вы лично видите какие-либо проблемы с этим подходом?
Там действительно нет смысла в предотвращении C++ 03. C++ 0x * возможно *, поскольку стандартная библиотека включает потоки, но в C++ 03 нет ничего плохого. – Puppy