require_once 'app / Mage.php'のセキュリティリスク; Magentoルートで


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

含む-スクリプトは、Magentoの中ALTERコンテンツへの引数のようなものを経由してインストールする手段が含まれていない限り、何も私はそれがセキュリティ上のリスクだと表示されていないスクリプトに送信されていないMage.phpだけで、正確に何であるindex.phpすぎない(また、ウェブルートで)。


@Jonathan Husseyに感謝します。意味がありますが、それindex.phpを使用しているとは考えていませんでした
Holly 14年

8

少しパラノイアを追加するには、requireステートメントを変更しapp/Mage.phpて、絶対ファイルシステムパスを使用してファイルを指定し、PHPインクルードパスを使用しないようにします。

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のWebサイトにアクセスしてhttp://example.com/test.php、ファイルを推測しただけで、出力が得られました(Mail sent!笑)。また、開発者は、スタンドアロンスクリプト内の一部のデータベーステーブルを時々変更したいので、そのためのモジュールを作成したくないため、デリケートなものを作成します。

このようなタイプのスタンドアロンファイルを作成する場合は、IP制限のみを行う必要がexit;あります。そのファイルに対する作業が終了したら、ファイルの先頭に配置することをお勧めします。ちょうど私の2セント。


1

クリード・ブラットン、この種のコードを呼び出すことは常に危険です。あなたはtwitter.phpからMage.phpを呼び出しているので、する必要がありput proper file permission for twitter.phpます。または、他のユーザーがtwitter.phpのコードを書き換えることができます。Other wise it does not create any issue.


このファイルの644の標準ファイル許可は問題ないはずです。また、PHPファイルにはWebサーバーユーザーの読み取り権限のみが必要であるため、これを利用して何らかの理由でファイルの編集を制限したい場合もあります。
ジョナサンハシー14年

あなたのアドバイスのために... @JonathanHusseyをありがとう
アミットベラ

2
なぜ..私は投票を降り..缶はexplaing
アミットベラ

彼らが反対票を説明しないと嫌いです。
予備自転車14年

1)このコンテキストでの「ユーザー」とは、サーバー上のユーザー、つまりサーバーに既にアクセスしているユーザーを意味します。2)これは、ファイルにMage.phpが含まれているという事実とはまったく関係ありません。誰かがあなたのサーバへのアクセスを持っており、ファイルを書き込むことができれば、彼はにコードを追加することができます任意のファイル(または中/しばしば777に設定されているメディア、例えば新しいものを作成する)
ファビアンSchmengler
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.