首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过知道jpg映像的URL来防止攻击者运行嵌入在jpg映像中的PHP代码?

如何通过知道jpg映像的URL来防止攻击者运行嵌入在jpg映像中的PHP代码?
EN

Stack Overflow用户
提问于 2018-04-25 04:41:09
回答 1查看 262关注 0票数 0

如何通过知道jpg映像的URL来运行嵌入在jpg映像中的php代码?

假设一个黑客将带有php代码的受污染的jpg上传到服务器上。

现在他想要执行他的php代码,他也知道图像的URL

我知道如果映像是用服务器的php文件执行的,黑客的php代码也会被执行。

例如,服务器的以下代码将在映像中执行黑客的php代码:

代码语言:javascript
复制
<h1>Problem?</h1>
<img src="img1.jpg">
<?php
include "./img1.jpg";

但是,如果我处理包含的文件并阻止执行未知的包含的文件,黑客的php代码自然不会被执行(例如,在应该包含的文件中定义一个常量,并在文件中检查应该包含这些文件的常量)。

问题是:

,当黑客也知道该图像的URL时,是否有另一种解决方案可以在图像中执行他的php代码?

图片是用android应用程序上传到服务器上的。

提前感谢

编辑:

这是服务器的结构:

public-html:

它包含B.PHP文件,其中只包含来自主文件夹(非公共)的A.PHP文件。

它也包含用户上传的图像。

非公共的主文件夹:

它包含A.PHP文件,B.PHP文件将包含在public-html中。

它还包含一些其他数据,例如用户的姓名和电话号码。

A.PHP负责将文件上传到public-html和主文件夹。

例如:

一些json数据将被上传到主文件夹中,一些图片将被上传到public-html区域。

这个结构危险吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-25 06:36:47

当有人通过URL访问图像时,正确设置NGINX或Apache将防止这种事情发生。服务器上的所有文件都有特定的类型,它区分哪些文件将运行,哪些文件将返回给用户。这就是在Apache配置中配置文件处理程序的目的,这样它就知道它只需要运行带有php/php 5/php 7扩展名的文件。

从服务器上的某个位置读取文件内容与从本地目录读取内容没有什么不同。在它上执行包含将不会在服务器上运行该文件,因为如果执行包含的编码器也在同一服务器上,则为例外。在这种情况下,攻击者已经设法在服务器上创建了一个PHP文件,并且在本地或远程存储在某个模糊文件中的其他代码并没有什么区别。

另一种情况是,攻击者设法替换服务器上已知目录中的文件,如果没有php扩展名,则不会运行该文件,因为适当的开发人员不会将PHP代码存储在具有JPG扩展名的文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50014192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档