我需要使用javascript修改值,以使其可以作为SQL插入查询的一部分.
目前我有以下代码来处理单引号'字符.
value = value.replace(/'/g, "\\'");
Run Code Online (Sandbox Code Playgroud)
此代码没有问题.现在我注意到独立的反斜杠导致错误.
如何删除那些独立的反斜杠?
T.J*_*der 21
现在我注意到独立的反斜杠导致错误.
您正在操作的字符串中的反斜杠对替换'字符没有任何影响.如果您的目标是替换反斜杠字符,请使用以下命令:
value = value.replace(/\\/g, "whatever");
Run Code Online (Sandbox Code Playgroud)
...将用"what"替换字符串中的所有反斜杠.请注意,我必须写两个反斜杠而不是一个.这是因为在正则表达式文字中,反斜杠用于引入各种特殊字符和字符类,并且还用作转义 - 正则表达式文字中的两个反斜杠(如在字符串中)表示单个实际的反斜杠串.
要将单个反斜杠更改为两个反斜杠,请使用:
value = value.replace(/\\/g, "\\\\");
Run Code Online (Sandbox Code Playgroud)
请注意,再次,为了在替换字符串中获得文字反斜杠,我们必须转义两者中的每一个 - 在替换字符串中总共产生四个.
我需要使用javascript修改值,以使其可以作为SQL插入查询的一部分.
你不想手工做这件事.任何允许您进行数据库查询的技术(JDBC,ODBC等)都将提供某种形式的准备或参数化语句(链接),它可以为您处理这些类型的转义问题.几乎可以保证在您的软件中留下可能被利用的安全漏洞.您希望使用必须考虑这一点的团队的工作,并在问题曝光时定期更新生成的代码,而不是单独飞行.此外,如果您的JavaScript在客户端上运行(因为大多数情况,但绝不是全部 - 我一直在使用JavaScript服务器端),那么您没有做任何事情来逃避字符串可以使其安全,因为客户端请求服务器可以被欺骗,完全绕过客户端代码.
| 归档时间: |
|
| 查看次数: |
18100 次 |
| 最近记录: |