programing

업로드된 php 파일을 워드프레스로 실행하는 대신 일반 텍스트로 표시하는 방법은 무엇입니까?

sourcejob 2023. 6. 13. 22:14
반응형

업로드된 php 파일을 워드프레스로 실행하는 대신 일반 텍스트로 표시하는 방법은 무엇입니까?

편집testme.php파일을 /tmp에 저장합니다.

<?php
echo  "test";
?>

다음 제목의 새 게시물 편집test파일 업로드/tmp/testme.phpurl로 표시합니다.http://home.local/wp/?p=4785.
여기에 이미지 설명 입력

테스트해보고, 클릭하고, 워드프레스로 새 창을 띄우고 싶습니다.여기에 이미지 설명 입력

계속 클릭합니다.test웹 페이지에 표시됩니다.

내 예상은:
1.그냥 클릭testme시험장에서 한 번.
2.쇼를 보다testme.php일반 텍스트로,

<?php
echo  "test";
?>

실행 결과 대신testme.php.

test

몇 가지 재료에 따라 구성합니다.show php file as plain text in apache.

sudovim /etc/sys2/sudov-available/000-default.conf

<VirtualHost *:80>
    ServerName www.home.local
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
        <Directory /var/www/html>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            allow from all
            php_flag engine off
            AddType text/plain php
        </Directory>
</VirtualHost>

apache2(build in debian)를 재부팅합니다.

sudo systemctl restart apache2

게시물 열기http://home.local/wp/?p=4785,저는 웹페이지에서 다음과 같은 출력을 받았습니다.

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

올바른 코드를 이미 가지고 있습니다.AddType text/plain phpApache가 PHP 파일(또는 이름이 끝나는 파일)을 처리하도록 만들 것입니다..php일반 텍스트 파일로 사용할 수 있습니다.

하지만 다음을 가정하면:

  • 에 WordPress가 설치되어 있어야 합니다./var/www/html디렉토리입니다.

  • PHP 파일이 기본값으로 업로드됩니다.uploadsWordPress의 폴더(wp-content/uploads).

디렉터리를 다음으로 설정하는 경우/var/www/html/wp-content/uploads다음과 같이:

<Directory /var/www/html/wp-content/uploads>
  AddType text/plain php
</Directory>

원하는 결과를 얻을 수 있습니다. PHP 파일만 해당됩니다.uploads폴더는 일반 텍스트 파일로 취급되며, 모든 PHP 파일은 아닙니다./var/www/html디렉토리입니다.이는 "포스트를 열려면, 다음 출력을 받았습니다"의 문제를 설명합니다. 여기서 출력은 파일의 코드입니다./var/www/html/index.php내 말은, 당신은<Directory /var/www/html>그래서 아파치가 치료를 하게 됩니다.index.php파일에서 PHP 코드를 실행하는 대신 일반 텍스트 파일로 파일을 만듭니다.

대체 방법:사용.htaccess파일.

특히 Apache의 구성을 편집할 수 없거나 액세스할 수 없는 경우(.conf) 파일.

  1. 만들다.htaccess에서uploads폴더(아직 없는 경우).

  2. 그 다음 추가AddType text/plain php그 파일 안에.

추가 참고 사항

내용을 보고 싶습니다.testme.php클릭하면 새 창이 나타납니다.

그렇게 할 수 있거나 이미 코드/솔루션을 가지고 있을 것이라고 확신하지만, 쉬운 방법은 추가하는 것입니다.target="_blank"첨부 파일/파일 링크로 이동합니다.또는 JavaScript를 사용하여 를 사용할 수 있습니다.

그리고 사람들이 PHP 파일을 업로드하도록 허용하면 사이트 및/또는 사이트 사용자에게 해를 끼칠 수 있으므로 완전한 보안 조치를 취해야 합니다.

당신은 무엇을 성취하려고 합니까?당신은 PHP 파일의 내용을 표시하는 하이퍼링크를 얻으려고 하는 것 같습니다.WordPress 게시물은 데이터베이스에 저장됩니다.그래서 당신이 "출판"이라고 말할 때, 당신은 무슨 말이죠?WordPress 게시물을 참조하는 데이터베이스 항목 또는 PHP 파일?화면에 원하는 것이 PHP 파일의 실행되지 않은 내용뿐이라면 WordPress "post"를 게시해서는 안 됩니다.게시물에는 무엇이 포함되어 있습니까?만약 당신이 PHP 파일을 게시물의 내용으로 넣는 것을 말하는 것이라면, 그것 또한 다른 것이 될 것입니다.PHP 파일의 내용을 표시하는 가장 쉬운 방법은 텍스트 파일로 이름을 바꾸는 것입니다.

myFile.php => myFile.php.txt

언급URL : https://stackoverflow.com/questions/52362401/how-to-show-uploaded-php-file-as-plain-text-instead-of-executing-it-in-wordpress

반응형