Я создал изображение в php-файле и написал над ним текст. Я не использую пользовательский ввод, но я получаю доступ к моей базе данных. Обычно файлы Joomla начинаются сРазрешить прямой доступ к файлу в Joomla без нарушений безопасности
defined('_JEXEC') or die('Restricted access');
, но я хочу/поэтому я не могу использовать эту строку. В этом примере мой сайт по-прежнему будет в безопасности?
Все огорожена
try {
$pdo = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare("SELECT * FROM newData");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_NUM);
foreach($result as $row) {
pseudo code...grab image, make a string with data from the query and write
on top of image
}
show image.
} catch(PDOException $e) {
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
Или, Что безопаснее/лучше для достижения тех же результатов.
Разрешение прямого доступа к файлу не является угрозой безопасности и само по себе. Все дело в том, что делает этот сценарий и что он обращается к нему, что создает угрозу безопасности. Это не создаст угрозы безопасности, но вы потеряете все преимущества использования Joomla (основные классы и т. Д.), Поэтому это не рекомендуется. –
API Joomla фактически включает в себя тип документа изображения (так что вы можете сделать view.image.php). Это может стоить изучить. – Elin