我试图搜索但没有找到答案。
我用PL / SQL,HTML,CSS和Javascript创建了一个Web应用程序。
人们可以搜索文章并撰写评论这些文章。 如果他们点击提交按钮,它就会开始搜索客户的条件。
我将条件作为参数发送并存储到变量中。
之后我启动Statement并使用新记录刷新页面。 如果有人用特殊字符(如
)撰写评论(&,%,“,',_)
我的页面崩溃,因为Statement字符串不再正确。
声明看起来像
SELECT * FROM myTable
WHERE Name LIKE ('''%'||nameVar||'%''');
请原谅我的英语 感谢
答案 0 :(得分:1)
好的,首先你关于“ESCAPING”的问题导致我走错了方向,因为你可以为类似的Statement定义一个“ESCAPE”字符:这将在你的Statement文字中取你的%或_:
where ..... like '%\%%' ESCAPE '\'
应该在列中找到带有%的记录。
但这不是你的问题!
您的Web应用程序必须对您的字符串进行HTML编码 - 然后您可以将其存储在任何数据库中。
这必须由您的前端(无论是什么:ASP.NET,PHP等等)
完成经过短暂的Google搜索后,我发现:HTF Package,HTF.ESCAPE_SC函数对可在SQL语句中使用的字符串进行编码。
也许此链接可以帮助您:https://docs.oracle.com/cd/B14099_19/web.1012/b15896/pshtp.htm