证券与上传图像PHP

时间:2016-06-14 01:55:30

标签: php image file-upload

我的网络应用上有一个上传图片功能,我尝试上传一个CREATE FUNCTION [dbo].[PERCENTRANK_column]( @colname nvarchar(50) ) RETURNS @resultingtable TABLE( RowID int, PercentRank float ) AS BEGIN ;WITH true_CDF AS ( SELECT PERCENT_RANK() OVER (PARTITION BY 1 ORDER BY CASE @colname WHEN 'X' THEN X WHEN 'Y' THEN Y ELSE NULL END ASC) as PercentRank , CASE @colname WHEN 'X' THEN X WHEN 'Y' THEN Y ELSE NULL END AS selected_col FROM dbo.MainTable ) , selectColumn AS ( SELECT m.RowID ,CASE @colname WHEN 'X' THEN to_score_X WHEN 'Y' THEN to_score_Y ELSE NULL END as to_score FROM dbo.MainTable m ) , added_Mins AS ( SELECT B.RowID , ABS(B.to_score - A.selected_col) as diff , MIN(ABS(B.to_score - A.selected_col)) OVER (PARTITION BY 1) as lowest_difference , A.PercentRank FROM selectColumn B CROSS JOIN true_CDF A ) INSERT INTO @resultingtable SELECT RowID, PercentRank FROM added_Mins WHERE lowest_difference = diff RETURN END 文件,其代码如此php文件为<script>alert('XSS')</script>然后,我上传了它上传了,我担心的是,hack.php.jpg是否会运行并向恶意用户返回内容,否则它会忽略script内的script?以下是我上传图片的功能列表:

1)它将重命名图像,然后保存在文件夹中。

2)只接受.jpg extensions

3)文件大小jpg, png, jpeg

4)< 1000000用于重命名uniqid()的名称。

5)我使用imgunlink()保存move_upload_file()并删除文件夹中的img

6)我的img<form> enctypemultipart/form-data

我在accept="image/*"视频中了解了我的代码。

1 个答案:

答案 0 :(得分:0)

如何解析文件的扩展名? 理想情况下,您完全重命名该文件。例如,&#34; randomhash.jpeg / jpg / png&#34;。这样它就不可能包含&#34; .php&#34;扩展

您可以做的另一件事是在您存储图像的文件夹中禁用PHP代码执行(在nginx或Apache中)。

您还可以使用getimagesizeexif_imagetype功能来检查它是否为有效图像。请记住,这些功能并非万无一失。