Привет всем: D Как я могу защитить формулу (в документе Excel) за PHPExcel?Закрепить формулу за PHPExcel
Я использую HTML-форму для POST с введенным пользователем значением, PHP возвращает формулу из документа Excel и вычисляет с помощью введенного пользователем значения, а затем возвращает ответ вычисления пользователю. Формула не в HTML или PHP-скрипте, она находится внутри документа Excel.
Как защитить формулу в документе Excel? Я установил разрешение файлов документов Excel на ftp до 400 (без разрешения на чтение, запись, удаление для группы и общественности, у Владельца есть только разрешение на чтение), поэтому публика не может их загрузить. Но достаточно ли этой защиты? Существуют ли другие методы для чтения формулы внутри этих документов Excel?
Для тех, кто интересуется формулой внутри этих документов Excel, является =IF(A1>0,"Greater than Zero",IF(A1<0,"Less than Zero","Equals Zero"))
Эта формула - это то, что я хочу защитить, это то, что я не хочу, чтобы кто-нибудь видел, за исключением тех, кто имеет доступ к серверу, конечно.
HTML Form Script
<form action="./FirstInteraction.php" method="post">
Input A1: <input type="number" name="A1">
<input type="submit">
</form>
PHP скрипт: FirstInteraction.php
/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/');
/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';
/** Load Excel File **/
$inputFileName = './TrueFalse.xlsx';
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
/** Change A1 Value **/
$objPHPExcel->getActiveSheet()->setCellValue('A1',$_REQUEST["A1"]);
/** Calculate and State B1 Value **/
echo "<br> It is ".$objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue();
Я только начал изучать PHP два дня назад, поэтому я так волнуюсь, потому что я не уверен, какой эксплойт существует и невозможен. – Lin
В общем случае, если вы сделали ваш файл excel недоступным из другого источника, кроме сервера, вам не нужна никакая другая защита. Только остерегайтесь ваших пользовательских входов, т. Е. Не создавайте поля, которые пользователь заполняет, которые должны быть переданы функции eval(), где они могут выполнять PHP-код и не только использовать код для чтения вашего файла, но и некоторые более вредные действия. –
OK спасибо большое. – Lin