我的网络应用上有一个上传图片功能,我尝试上传一个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)我使用img
和unlink()
保存move_upload_file()
并删除文件夹中的img
。
6)我的img
是<form> enctype
和multipart/form-data
。
我在accept="image/*"
视频中了解了我的代码。
答案 0 :(得分:0)
如何解析文件的扩展名? 理想情况下,您完全重命名该文件。例如,&#34; randomhash.jpeg / jpg / png&#34;。这样它就不可能包含&#34; .php&#34;扩展
您可以做的另一件事是在您存储图像的文件夹中禁用PHP代码执行(在nginx或Apache中)。
您还可以使用getimagesize和exif_imagetype功能来检查它是否为有效图像。请记住,这些功能并非万无一失。