河南省交通基本建设质量检测监督站网站,管理系统软件有哪些,房地产网站的设计要求,基本网站建设技术问题1——动态解析代码 程序运行时动态解析源代码指令将易于收到攻击。 例#xff1a;下面代码片段中#xff0c;通过 ScriptEngine 执行用户提供的代码。 ... ScriptEngineManager scriptEngineManager new ScriptEngineManager(); ScriptEngine scriptEngine scrip…问题1——动态解析代码 程序运行时动态解析源代码指令将易于收到攻击。 例下面代码片段中通过 ScriptEngine 执行用户提供的代码。 ... ScriptEngineManager scriptEngineManager new ScriptEngineManager(); ScriptEngine scriptEngine scriptEngineManager.getEngineByExtension(js); userOps request.getParameter(operation); Object result scriptEngine.eval(userOps); ... 如果 operation 参数是合法的程序将会正常运行。例如当该值为 8 7 * 2 时 result 变量被 赋予的值将为 22 。 如果攻击者提供一个恶意的输入程序在没有进行合理校验的情况将产生代码注入攻击。如 Javascript 允许调用 Java 对象如果攻击者计划将 java.System.RunTime.exec(shutdown -h now) 的值指 定为 operation 主机系统就会执行关机命令。 当将输入数据 web 前端、网络、数据库作为程序代码 java 代码部分进行动态驱动和执行给 攻击者带来注入攻击的环境和可能 修复1——动态解析代码 对圆括号、星号、逻辑操作符、关系运操作符在应用层都必须过滤在任何时候都应尽可能地避免 动态的解析源代码。如果程序的功能要求对代码进行动态解析应用程序不应该直接执行和解析未验证的 用户输入。建议创建一份合法操作和数据对象列表用户可以指定其中的内容并且只能从中进行选择。 对动态执行代码中用到的数据进行严格检查、过滤即便数据来自数据库、内存。 问题2——正则表达式注入 当将数据作为正则表达式的一部分进行拼接就可能导致被攻击 修复2——正则表达式注入 对使用的数据进行严格的转移、例如 ]\?*[ { }]| 等进行转义 Js 中对使用的数据未做安全检查并作为 html 的一部分进行动态创建 DOM 导致攻击。 Js 中对使用数据进行 html 转义