Использование библиотеки PHPSandbox
Для этого была использована библиотека PHPSandbox, которая, к слову, требует новой современной версии языка PHP 5.3.2+. Эта библиотека основана на использовании другой библиотеки PHPParser. Эта библиотека в свою очередь разбирает php код в абстрактном представленном дереве, однозначно определяющее синтаксис входного кода. Эти две библиотеки являются OpenSource проектами и свободно представлены… Читать ещё >
Использование библиотеки PHPSandbox (реферат, курсовая, диплом, контрольная)
В нашем онлайн сервисе существует возможность написания подпрограмм для задания математической модели.
Для этого пользователям предлагается написать логику на языке PHP. Дело в том, что выполнять на сервере код пользователя, мягко говоря, не безопасно.
Злоумышленники могут удалить базу данных, или разослать спам на 1000 email адресов, используя какую-либо уязвимость. Поэтому особенно важно было реализовать безопасное выполнение любого кода, и защита от потенциально опасных конструкций в коде пользователя.
Для этого была использована библиотека PHPSandbox, которая, к слову, требует новой современной версии языка PHP 5.3.2+. Эта библиотека основана на использовании другой библиотеки PHPParser. Эта библиотека в свою очередь разбирает php код в абстрактном представленном дереве, однозначно определяющее синтаксис входного кода. Эти две библиотеки являются OpenSource проектами и свободно представлены в общем доступе.
Проектирование базы данных
Для современного онлайн сервиса необходима база данных. На нашем сервисе база данных в первую очередь необходима для системы аутентификации пользователей и их пользовательской библиотеки математических моделей. На рисунке 15 представлена структура базы данных. В процессе разработки она может быть дополнена и модифицирована.
Рисунок 15. Структура базы данных.
Из рисунка видно, какие типы полей есть у представленных таблиц. Таблица «users» хранит информацию о пользователях. Из email-адреса, пароли в зашифрованном виде, код для подтверждения email-адреса, и забытого пароля. Эта таблица условно связана с другими таблицами.
Так, таблица «math_models» хранит математические модели пользователей.
Таблица «conditions» текущее состояние вычисления, это необходимо на случай, если пользователь захочет выйти из своего аккаунта и вернуться к нам позже. И таблица «results» хранит результаты уже когда-то проведенных пользователем поисков. Своего рода история вычислений.
Выводы по главе В данной главе были приведены используемые технические средства при разработке программы для данного дипломного проекта. Также был описан разработанный пользовательский интерфейс, и некоторые аспекты технической реализации проекта.