小编bil*_*rky的帖子

使用PHP动态运行ClamAV的clamscan文件上传

堆,

我想用clam anti-virus的clamscan工具扫描每个通过我的php上传脚本上传的文件.我想我写了一个很好的剧本,但我想把它跑过你们.

假设我发送到这个php上传脚本的文件被命名为"uploadedfile",下面的代码是否有意义?

<?php

$safe_path = escapeshellarg('/tmp/' . $_FILES['uploadedfile']['tmp_name']);
$command = 'clamscan ' . $safe_path;
$out = '';
$int = -1;
exec($command, $out, $int);

if ($int == 0) {
   // all good, code goes here uploads file as normal IE move to
permanent directory etc;
} else {
   unlink('/tmp/' . $_FILES['uploadedfile']['tmp_name']);
header(Location: http://www.domain.com/uploadform.php?error=your-file-was-infected-pal);
}

?>
Run Code Online (Sandbox Code Playgroud)

还有,clamscan会发现php shell以及传统的旧恶意软件吗?

谢谢!

更新 - 找到答案

我回答了自己的问题,但没有正式的声誉.这是anser:

对于那些追求的人.我已经使用EICAR测试病毒文件http://eicar.org/86-0-Intended-use.html测试了这个脚本,经过一些调整后它可以工作.返回变量$ int是告诉您文件是否安全的原因.如果$ int为0,则未发现病毒,如果$ int为1,则发现病毒.但是,我必须进行一些更改才能使脚本工作(我更新了$ safe_path变量是正确的),这是工作脚本:

<?php

$safe_path = escapeshellarg($_FILES['uploadedfile']['tmp_name']);
$command = 'clamscan ' . $safe_path; …
Run Code Online (Sandbox Code Playgroud)

php security file-upload

11
推荐指数
1
解决办法
8775
查看次数

如何将其他URL变量添加到已使用mod_rewrite重写的URL中

有没有人知道是否有可能将其他变量放入您正在使用mod_rewrite的URL中,以基本上切入变量.

例如,如果我有URL:

website.com/post/53/post-title/
Run Code Online (Sandbox Code Playgroud)

我正在使用mod_rewrite将其转换为:

website.com/post.php?postid=53
Run Code Online (Sandbox Code Playgroud)

有没有优雅的方法将其他变量放入"预先重写"的URL并保留它们用于我的post.php脚本?

IE,如果我创建如下链接怎么办:

website.com/post/53/post-title/?anothervar=6
Run Code Online (Sandbox Code Playgroud)

到目前为止,似乎我的mod_rewrite代码只是丢弃了额外的变量并将URL发送到post.php脚本,如下所示:

website.com/post.php?postid=53
Run Code Online (Sandbox Code Playgroud)

我知道我可以用它$_SERVER['REQUEST_URI']来获取我的PHP脚本(AKA website.com/post/53/post-title/?anothervar=6)中的原始URL ,然后再由mod_rewrite重写,然后只需将字符串切掉以便在变量上添加,但我只是想知道是否还有更多优雅的解决方案,只使用mod_rewrite.

.htaccess mod-rewrite get

6
推荐指数
2
解决办法
1万
查看次数

如果PHP的mysql扩展据说不支持像mysqli这样的事务,为什么我看到有人在网上进行交易?

我正在阅读有关mysql事务的内容,我认为你必须使用mysqli或PDO才能创建事务.但是,我看到所有使用mysql扩展的堆栈交换和其他站点示例如下:

mysql_query("START TRANSACTION");
$rollback=0

if (!mysql_query($query1)){
$rollback=1
}

if (!mysql_query($query2)){
$rollback=1
}

if (!mysql_query($query3)){
$rollback=1
}

if ($rollback == 1){
mysql_query("ROLLBACK");
}
else{
mysql_query("COMMIT");
}
Run Code Online (Sandbox Code Playgroud)

这样做和使用"特殊"mysqli特定函数mysqli :: rollback和mysqli :: commit之间有什么区别?

此外,如果php脚本崩溃(IE我的应用服务器崩溃等)会发生什么,DB服务器是否会在设定的时间段后自动回滚事务?

同样,如果DB服务器在mysql_query("COMMIT")之前崩溃会发生什么?交易会被"回滚"吗?

谢谢!

php mysql mysqli transactions

5
推荐指数
1
解决办法
648
查看次数

在钻取时将X轴类型从类别更改为日期时间

是否可以在下钻时将图表的x轴类型从类别更改为日期时间?我有堆叠列样式图,其中每列是不同的类别.当我点击其中一列时,我想深入查看具有日期时间x轴的该类别的专用列图.

我已经能够成功深入到另一个类别样式图,并将每个类别设置为日期范围内的一天,但使用日期时间格式会好得多.

这是我正在运行的"onClick"代码,试图这样做.显然,数据是样本数据,只是为了简单起见.目前,这会以内存限制崩溃Firefox.

甚至可以像这样动态切换x轴类型吗?

function setChart() {



    while(hChart.series.length > 0){
        hChart.series[0].remove();
    }


    hChart.xAxis[0].update({
        type: 'datetime'
    });

    console.log(hChart.xAxis[0]);


    data = [
            [Date.UTC(2010, 0, 1), 5],
            [Date.UTC(2010, 0, 2), 11],
            [Date.UTC(2010, 0, 3), 3],
            [Date.UTC(2010, 0, 6), 7],
            [Date.UTC(2010, 0, 7), 4],
            [Date.UTC(2010, 0, 8), 1]
    ];
    console.log(data);



    hChart.addSeries({
       type: 'column',
      data: data,
    }, false);

    hChart.redraw();
}
Run Code Online (Sandbox Code Playgroud)

html javascript php highcharts

3
推荐指数
1
解决办法
1256
查看次数

从MYSQL表中选择通过TIMESTAMP类型在过去24小时内创建的记录

我需要通过php从mysql表输出过去24小时(关键字小时,而不是最后一天)创建的记录列表.表格中有一列标有'timestamp'的列,设置为默认CURRENT_TIMESTAMP.

我正在尝试以下方面:

<?php
$sql="SELECT * FROM list WHERE timestamp > I-have-no-clue-what-to-put-here";
$query=mysql_query($sql);

while($row=mysql_fetch_array($query)){
echo $row['itemname'] . " " . $row['itemurl'];
}
?>
Run Code Online (Sandbox Code Playgroud)

我是朝着正确的方向前进的吗?

mysql select

0
推荐指数
1
解决办法
1952
查看次数

在highcharts中动态添加和删除自定义导出按钮

有谁知道如何在highcharts中动态添加或删除"导出"按钮?

我已经能够使用类似于此的代码成功添加按钮:

exporting: {
        buttons: {
            customButton: {
                text: 'Custom Button',
                onclick: function () {
                    alert('You pressed the button!');
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我希望以后能够通过javascript事件将该按钮添加到图表中(然后很快将其删除).

javascript highcharts highstock

0
推荐指数
1
解决办法
3502
查看次数