2

私のJoomlaプラグインには次のようなコードがあります:

$some_id = $_GET["someid"];

$db = JFactory::getDBO();
$db->setQuery("SELECT * FROM #__table WHERE id = '$some_id'");

$result = $db->loadRow();

Joomlaはこれを自動的にサニタイズしますか、それともこのクエリをサニタイズするために何か(そして何を)する必要がありますか?Joomla2.5を使用します。

4

3 に答える 3

3

Joomlaを使用する場合、データベースクエリをサニタイズする必要はありません。プルダウンする情報は、そこに置かれた、またはすでにそこに置かれている情報であるため、変更したくありません。また、次のように、Joomla2.5コーディング標準を使用してデータベースクエリを作成することをお勧めします。

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('*'))
      ->from($db->quoteName('#__table'))
      ->where($db->quoteName('id') . ' = ' . $db->quote($some_id));
$db->setQuery($query);
$rows = $db->loadRow(); //or loadResult()

私が(いわば)何かをサニタイズする必要があったのは、ファイルを処理するときだけでした。その場合は、を使用しJFile::makeSafe();ました。

于 2013-01-08T16:08:55.247 に答える
1

JInputとこの対応するドキュメントを見てください

フィルタの例:

$jinput = JFactory::getApplication()->input;
$some_id = $jinput->get('someid', '', 'string');
于 2013-01-08T16:13:24.977 に答える
1

あなたがあなたの答えを得るのを見てください

安全なコーディングガイドライン

http://docs.joomla.org/Secure_coding_guidelines

于 2013-01-08T16:26:34.587 に答える