堆,
我想用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) 有没有人知道是否有可能将其他变量放入您正在使用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.
我正在阅读有关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")之前崩溃会发生什么?交易会被"回滚"吗?
谢谢!
是否可以在下钻时将图表的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) 我需要通过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)
我是朝着正确的方向前进的吗?
有谁知道如何在highcharts中动态添加或删除"导出"按钮?
我已经能够使用类似于此的代码成功添加按钮:
exporting: {
buttons: {
customButton: {
text: 'Custom Button',
onclick: function () {
alert('You pressed the button!');
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我希望以后能够通过javascript事件将该按钮添加到图表中(然后很快将其删除).
php ×3
highcharts ×2
javascript ×2
mysql ×2
.htaccess ×1
file-upload ×1
get ×1
highstock ×1
html ×1
mod-rewrite ×1
mysqli ×1
security ×1
select ×1
transactions ×1