Is String.split() function safe?
有一天,我和一位朋友谈论了他的一款Flash游戏服务器应用程序。
服务器与mysql数据库通信。我发现了这个要求:
1 | "UPDATE phpbb_users SET patojdur = '" + this.score +"' WHERE user_id = '" + this.user_id +"'" |
由于this.score是用户输入的数据,因此我问他将数据直接放入SQL请求是否不安全,并冒着SQL注入的风险。
但是他回答我:"不,因为this.score是
我的问题不是他是否通过这样做做出了正确的选择,因为我知道他不会改变主意,但是他说的话让我对一件事情感到好奇:分开真的很安全吗?是否真的阻止了分割字符通过您的操作?还是有风险,还是放一个
编辑:我已经阅读了以下问题,但我的问题特定于Split方法,并且不仅适用于SQL数据库,换句话说,我的问题是:
仍然很危险。 当然,这取决于SQL变体。 反斜杠通常是一个转义符。 对于单引号,
'?; DROP TABLE myTable--'
在某些情况下,Unicode转换可能会用单引号引起来,因为您只用空字符串显式替换了单双引号字符的一种表示形式(这就是split的作用..)
参见:http://siderite.blogspot.com/2013/01/why-doubling-single-quotes-is-not.html