我的一个朋友带着这种我无法解释的奇怪行为来找我,任何洞察力的观点都会受到赞赏.
我正在运行VS 2005(C#2.0),以下代码显示了该行为
int rr = "test".IndexOf("");
Console.WriteLine(rr.ToString());
Run Code Online (Sandbox Code Playgroud)
上面的代码,打印"0",清楚地表明它应该返回-1
这也发生在Java中,下面的Class显示了这种行为:
public class Test{
public static void main(String[] args){
System.out.println("Result->"+("test".indexOf("")));
}
}
Run Code Online (Sandbox Code Playgroud)
我正在运行Java 1.6.0_17
目前我正在研究ASP .NET MVC 4应用程序.我们使用提供的[ValidateAntiForgeryToken]和相应的@Html.AntiForgeryToken()来生成我们使用POST提交的表单中的隐藏字段.
到目前为止,该机制似乎正常工作,因为如果我没有提供令牌作为输入隐藏字段到目标操作注释与[ValidateAntiForgeryToken]错误按预期引发.
但是我觉得很奇怪,如果我使用Firebug或Chrome检查器捕获了几个生成的令牌,将它们复制到记事本然后转到另一个页面,该页面也使用AntiForgeryToken并基本上用任何先前生成的令牌替换隐藏字段,这是一个错误没有提出.我期望总是有一个1:1的关系(Page Hidden Field - ValidationAtServer),因为如果某人能够获得该值,将能够伪造任何请求到需要AntiForgeryToken的应用程序中的任何形式
我的印象是,一旦生成令牌,就不可能重复使用相同的令牌,我认为这是框架本身的安全漏洞.
如果有人能够提供更多的洞察力,将会非常感激它.
我知道这听起来很奇怪,但我需要执行一些PL/SQL,其中包的所有者与Oracle保留字冲突,IF.
基本上,对象的所有者是IF.当我使用SQL Developer执行该过程时,生成的脚本会抛出错误,因为它尝试将游标变量声明为:
variable_name IF.MYCUSTOM_TYPE
Run Code Online (Sandbox Code Playgroud)
目前我无法控制架构,所以我无法改变任何东西.
asp.net-mvc ×1
c# ×1
cross-site ×1
indexof ×1
java ×1
logic ×1
oracle ×1
plsql ×1
string ×1
xss ×1