根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。 原始链接: SQL特殊字符转义 应该说,即使不处理HTML或JavaScript中的特殊字符,也不会带来灾难性的后果. 但是sql 特殊字符 @,如果在动态构造SQL语句时不处理变量中的特殊字符,则可能导致程序漏洞和数据严重的安全问题,例如盗窃和数据破坏. 互联网上有大量解释SQL注入的文章,有兴趣的读者可以搜索相关材料进行深入研究. 尽管SQL注入的后果非常严重,但只要动态构造的SQL语句的变量使用特殊字符进行转义,就可以避免此问题. 让我们看一个安全漏洞的经典示例: SELECT COUNT(userId) 上述SQL语句根据返回的结果数判断用户提供的登录信息是否正确. 如果将userName变量直接合并到SQL语句中而不进行特殊字符转义处理sql 特殊字符 @,则黑客可以绕过用户名/密码检查,将userName设置为“ 1”或“ 1” =“ 1”,然后直接进入系统. 除非必要,通常建议通过PreparedStatement参数绑定构造动态SQL语句,因为此方法可以避免潜在的SQL注入安全问题. 但是,通常很难通过在应用程序中串联字符串来完全避免构造动态SQL语句. 为了防止其他人使用特殊的SQL字符破坏SQL语句结构或植入恶意操作,必须在将变量拼??接到SQL语句之前对特殊字符进行转义. Spring没有提供相应的工具类. 您可以在jakarta commons lang包(spring / lib / jakarta-commons / commons-lang.jar)中使用StringEscapeUtils完成这项工作: 清单4. SqlEscapeExample
实际上,StringEscapeUtils不仅提供SQL特殊字符转义处理功能,而且还提供HTML,XML,JavaScript,Java特殊字符转义和还原方法. 如果您不介意介绍jakarta commons lang类程序包,建议您使用StringEscapeUtils实用程序类来完成特殊字符转义处理的工作.
|
温馨提示:喜欢本站的话,请收藏一下本站!