Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript图像上传和查看的安全性_Javascript_Php_File Upload - Fatal编程技术网

javascript图像上传和查看的安全性

javascript图像上传和查看的安全性,javascript,php,file-upload,Javascript,Php,File Upload,作为JSFirstTimer,考虑到文件类型是通过php检测和处理的,想问问下面的脚本是否正确(安全性) var URL=window.URL | | window.webkitURL; $(“#文件”).change(函数(e){ var文件,img,大小; 如果((file=this.files[0])){ 如果(文件大小

作为JSFirstTimer,考虑到文件类型是通过php检测和处理的,想问问下面的脚本是否正确(安全性)

var URL=window.URL | | window.webkitURL;
$(“#文件”).change(函数(e){
var文件,img,大小;
如果((file=this.files[0])){
如果(文件大小<“5100000”){
size=“good”;
img=新图像();
img.onload=函数(){
如果((此高度/(此宽度/64))<“200”){
如果(尺寸=“良好”){
//警报(“确定上载”);
$(“blah”).attr(“src”,img.src);
}
}else{alert(“文件太大(维度)”);}
};
img.src=\u URL.createObjectURL(文件);
}否则{
size=“大”;
警报(“文件太大,使用5MB或更小”);
}
}
});
编辑PHP部件

if(isset($_POST["titletext"])){


echo $_POST["titletext"];
if (!$_FILES["avafile"]["error"] > 0) {
    echo "Upload: " . $_FILES["avafile"]["name"] . "<br>";
    echo "Type: " . $_FILES["avafile"]["type"] . "<br>";
    echo "Size: " . ($_FILES["avafile"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["avafile"]["tmp_name"] . "<br>";
    move_uploaded_file($_FILES["avafile"]["tmp_name"], "upload/" . md5($_FILES["avafile"]["name"]));
    echo '<img class="img-rounded" style="width: 64px;" src="./upload/'.$_FILES["avafile"]["name"].'">';
}
if(isset($\u POST[“titletext”])){
echo$_POST[“titletext”];
如果(!$\u文件[“avafile”][“error”]>0){
echo“上传:.”文件[“avafile”][“name”]。“
”; echo“Type:”.$\u文件[“avafile”][“Type”]。“
”; echo“Size:”($_文件[“avafile”][“Size”]/1024)。“kB
”; 回显“临时文件:.”文件[“avafile”][“tmp_名称”]。“
”; 移动上传的文件($上传文件[“avafile”][“tmp\U名称”],“上传/”.md5($上传文件[“avafile”][“名称”])); 回声'; }
}

现在还想知道是否有一种方法可以检测作为图像上传的脚本/文本,并使用一些“striptags”


正在使用md5(某物)名称上载图像。

上载的大多数安全注意事项都在服务器端—例如,在PHP代码中。(一个例子可能是意外地允许上传“serverinfect.php”,并意外地将其放在可运行的wwwroot位置)您有任何php代码要发布吗?我很确定如果((file=this.files[0])始终为真,因为x=true为真,x=false为真。如果我在这方面错了,请纠正我。也就是说,给变量赋值总是正确的。@Katana314验证应该在客户端和服务器端都进行。我想说的是,文件扩展名包括在其中,我不希望.exe或.bat运行,即使它在服务器上得到验证。安全总比抱歉好。@Jonast92这是真的,尽管我认为这样的代码是“验证”,而不是“安全性”,以帮助防止用户做愚蠢的事情,而不会给他们一个直接的PHP错误。如果你试图阻止黑客破坏你的服务器或愚弄你的其他用户,他永远不会运行你的JavaScript——他会运行自己定制的HTTP请求来试图找到漏洞。他不必遵守JS脚本的任何规则。@Jonast92是的!这些都是我同意的。我想唯一的分歧是“安全性”和“验证性”,但我想这并不重要。
if(isset($_POST["titletext"])){


echo $_POST["titletext"];
if (!$_FILES["avafile"]["error"] > 0) {
    echo "Upload: " . $_FILES["avafile"]["name"] . "<br>";
    echo "Type: " . $_FILES["avafile"]["type"] . "<br>";
    echo "Size: " . ($_FILES["avafile"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["avafile"]["tmp_name"] . "<br>";
    move_uploaded_file($_FILES["avafile"]["tmp_name"], "upload/" . md5($_FILES["avafile"]["name"]));
    echo '<img class="img-rounded" style="width: 64px;" src="./upload/'.$_FILES["avafile"]["name"].'">';
}