require_once 'app / Mage.php'의 보안 위험; 마 젠토 루트


12

Magento 루트 require_once 'app/Mage.php';Mage::getStoreConfig시스템 변수에 액세스 할 수있는 파일이 있습니다.

이것이 보안 위험을 유발합니까? 다른 폴더에 넣어야합니까?

이것은 내 파일 /twitter.php입니다 .

<?php
require_once 'app/Mage.php';
Mage::app();
$consumer_key = Mage::getStoreConfig("Social/twitterapi/consumer_key");
$consumer_secret = Mage::getStoreConfig("Social/twitterapi/consumer_secret");
$oauth_access_token = Mage::getStoreConfig("Social/twitterapi/access_token");
$oauth_access_token_secret = Mage::getStoreConfig("Social/twitterapi/access_token_secret");

답변:


10

스크립트가 젠토에서 ALTER 콘텐츠를 스크립트로 전송 인수 같은 것을 통해 설치하는 방법을 포함하지 않는 한 다음 더 나는 그것이 보안 위험이 있다고 보지 않는다 -을 포함하는 Mage.php경우에만 정확히 무엇을 index.php(또한 웹 루트가) 너무 않습니다.


감사합니다 @Jonathan Hussey, 말을 만드는, index.php그것을 사용하는 것을 고려하지 않았다
Holly

8

약간의 편집증을 추가하기 위해 require app/Mage.php파일을 절대 파일 시스템 경로 를 사용하여 파일 을 지정하도록 변경할 수 있으므로 PHP include 경로가 사용되지 않습니다.

require __DIR__ . '/app/Mage.php';

또는 5.3 이하의 PHP 버전에서 :

require dirname(__FILE__) . '/app/Mage.php';

매우 이론적 인 공격자가 따라서 어떻게 든 PHP가 포함 경로를 조작 할 수있는 것을있는 공격 벡터 arbitraty에 포함 할 수있는 app/Mage.php파일을.


3

이 파일에 액세스 할 수있는 유일한 사람이라면 IP를 제한 if($_SERVER['REMOTE_ADDR']=='your.ip.address.here')하지 않겠습니까? Magento 루트에 이러한 유형의 파일을 유지하고 어떤 종류의 인증없이 관리자 관련 작업을 수행하는 많은 magento 개발자를 보았습니다. 예를 들어, 나는 친구 Magento 웹 사이트 중 하나에 가서 파일을 추측 http://example.com/test.php하고 나에게 Mail sent!lol 출력을 주었다 . 또한 개발자는 한 번만 수행하려는 독립형 스크립트에서 일부 데이터베이스 테이블을 변경하기 위해 민감한 내용을 작성하고이를위한 모듈을 작성하고 싶지 않습니다.

필자는 이러한 유형의 독립형 파일을 만드는 사람에게만 IP를 제한하고 제안한 후에는 해당 파일에서 작업이 완료되면 파일 exit;위에 올려 놓을 것을 제안 합니다. 그냥 내 2 센트.


1

Creed Bratton,이 유형의 코드를 호출하는 것은 항상 위험합니다. twitter.php에서 Mage.php를 호출하기 때문에해야합니다 put proper file permission for twitter.php. 또는 다른 사용자가 twitter.php의 코드를 다시 작성할 수 있습니다.Other wise it does not create any issue.


이 파일에 대한 표준 파일 권한 은 644입니다. 또한 PHP 파일은 웹 서버 사용자에게 읽기 권한 만 필요하므로이를 이용하여 파일 편집을 제한하려는 경우 가능한 이유는 무엇이든 기억하십시오.
Jonathan Hussey

@JonathanHussey에게 감사합니다 ... 귀하의 조언에 대해
Amit Bera

2
왜 .. 투표권을 얻었는지 설명 할 수 있습니다.
Amit Bera

그들이 하락 투표를 설명하지 않을 때 나는 싫어.
여분의 자전거

1)이 문맥에서 "사용자"는 서버의 사용자, 즉 이미 서버에 액세스 권한이있는 사람을 의미합니다. 2) 이것은 파일에 Mage.php가 포함되어 있다는 사실과 전혀 관련이 없습니다. 누군가 서버에 액세스하여 파일을 작성할 수있는 경우 파일에 코드를 추가 할 수 있습니다 (또는 / media에서 종종 777로 설정되는 새 코드 작성)
Fabian Schmengler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.