在周末我编译了一个正则表达式列表,以检查GET,POST和COOKIE超级全局变量中的sql注入.从各方面来看,它们在检测是否找到sql注入方面非常有效.我已经在各种sql注入文档中看到了很多注入攻击,但我正在寻找可能无法解释的更复杂的注入攻击.
我很清楚最好的防御方法是验证/清理输入和参数化查询,但是这个脚本不是为了保护而是为了记录潜在的攻击.我也知道这会在各种情况下产生误报,但由于它只是用于记录,这不是一个问题.
检测脚本如下.
<?php
testArray($_GET);
testArray($_POST);
testArray($_COOKIE);
function testArray($array)
{
foreach ($array as $name => $value)
{
if(is_array($value) === true)
{
testArray($value);
}
else
{
testHelper($value);
}
}
}
function testHelper($varvalue)
{
$total = test($varvalue);
echo '<h3 style="'.($total > 0 ? 'color:red;' : 'color:green;').'">'.nl2br($varvalue).'</h3>';
echo '<span style="'.($total > 0 ? 'color:red;' : 'color:green;').'">';
echo 'total = '.$total.'
';
echo '</span><br />';
}
function test($varvalue, $_comment_loop=false)
{
$total = 0;
$varvalue_orig = $varvalue;
$quote_pattern = '\%27|\'|\%22|\"|\%60|`';
// …
Run Code Online (Sandbox Code Playgroud) 我希望能够将大的int转换为完整的字符串派生词.
例如.
$bigint = 9999999999999999999;
$bigint_string = (string) $bigint;
var_dump($bigint_string);
Run Code Online (Sandbox Code Playgroud)
输出
string(7) "1.0e+19"
Run Code Online (Sandbox Code Playgroud)
但是我需要
string(19) "9999999999999999999"
Run Code Online (Sandbox Code Playgroud)
请不要告诉我,我最初应该将$ bigint值设置为字符串.这不是一种选择.我真的被卡住了,不知道它是否可能?
我有一个页面,其中包含注册用户的详细信息.每个html表包含80-90个用户.对于每个用户,都有一个$ username变量.我通常会在下面的代码中显示他们的照片.
print "<a href=\"small-avatar-$username.jpg\" target=\"_blank\">
<img src=\"big-avatar-$username.jpg\">
</a>";
Run Code Online (Sandbox Code Playgroud)
但是用户可以在新选项卡中打开图像.我想轻松地展示大头像.我的第一选择是lightbox-jquery.但是因为我在我的网站中使用了twitter-bootstrap,所以我决定使用默认的bootstrap和jquery功能.
我看到有"bootstrap-modals".当用户点击链接时,我不打算显示任何超过我的大图.
我试过这个:
print "<a href=\"#$username" data-toggle=\"modal\" class=\"img-modal\" >
<img src=\"small-avatar-$username.jpg\" ></a>";
print '</td>';
Run Code Online (Sandbox Code Playgroud)
.
print "<div id=\"$username\" class=\"modal\">";
<img src=\"big-avatar-$username.jpg\">
print "</div>";
Run Code Online (Sandbox Code Playgroud)
.
<script type="text/javascript" id="js">
$('#username').modal();
</script>
Run Code Online (Sandbox Code Playgroud)
我想把$('#username').modal();
每个用户都放到我的页面会使HTML文件变得庞大.
但后来我尝试了类似锚的类名:$('.img-modal').modal();
但这不起作用.
在这种情况下你会推荐什么?
这是一个相当基本的问题,但我只找到了三个答案。我想对可能包含也可能不包含其他 html 元素的未格式化内容进行自动段落标记。两个不错的功能是 wordpress wpautop、HTMLPurifier AutoFormat.AutoParagraph和最后一些随机addParagraphsNew。然而,第一个与我的应用程序许可证不兼容,第二个不在段落标签内添加换行符,第三个是不稳定的。
有谁知道商业上合适的许可脚本,允许将具有换行符和双换行符的 html 内容转换为<br />
和<p>
标签?
我相信 HTMLPurifier 选项可能是我侵入 AutoFormat.AutoParagraph 插件以使其添加换行符的最佳方法,但我希望能稍微简单一些。我知道很懒。