作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
几年前,我了解到 Format String Attacks在 C 中很难。现在,我最近看到了一些像这样的 PHP 代码:
<?php
echo sprintf($_GET['format'], $_GET['value1'], $_GET['value2']);
我试过像这样运行它,将 $_GET['format']
设置为像 %s%s%s...
这样的字符串,但是 PHP 只存在于PHP 警告:sprintf():第 2 行 file.php 中的参数太少
。是否仍然可以进行格式字符串攻击?
最佳答案
不是任何传统意义上的,如 PHP 的 sprintf
不支持任何真正危险的转换,例如 %n
。用户控制的格式字符串仍然会造成一些有限的破坏(考虑 %99999999s
),但我认为最坏的情况是消耗内存和时间。
关于PHP sprintf 被认为是有害的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9895838/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我在摆弄 LinqToSQL 和 LINQPad,我注意到 SingleOrDefault() 没有对生成的 SQL 进行任何过滤或限制(我几乎期望与 Take(1) 等效)。 因此,假设您想保护自己
我是一名优秀的程序员,十分优秀!