0

大家好:D 如何保护 PHPExcel 后面的公式(在 Excel 文档中)?

我正在使用 HTML 表单发布用户输入的值,让 PHP 从 Excel 文档中检索公式并使用该用户输入的值进行计算,然后将计算结果返回给用户。该公式不在 HTML 或 PHP 脚本中,而是在 Excel 文档中。

如何保护 Excel 文档中的公式?我已将 ftp 中 Excel 文档的文件权限设置为 400(Group 和 Public 没有读取、写入、执行权限,Owner 只有读取权限),因此公众无法下载它们。但这种保护就足够了吗?还有其他方法可以读取这些 Excel 文档中的公式吗?

对于那些想知道的人,这个 Excel Docs 中的公式是=IF(A1>0,"Greater than Zero",IF(A1<0,"Less than Zero","Equals Zero"))这个公式是我想要保护的,这是我不希望任何人看到的,除了那些当然可以访问服务器的人。

HTML 表单脚本

<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();
4

2 回答 2

1

由于没有人可以访问您的 .xlsx 文件,也无法下载它,而且 PHP 脚本仅在服务器端可见,因此不需要任何进一步的安全性。

但是,您对此有何恐惧?您认为他们如何访问您的公式?如果您对任何漏洞利用有一些建议,也许我们可以给出如何修复它的适当建议。

于 2013-04-15T09:49:36.997 回答
1

保护的意思是什么?如果您的意思是阻止该单元格被编辑,那么:

$objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(
    PHPExcel_Style_Protection::PROTECTION_PROTECTED
);
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
于 2013-04-15T09:51:21.387 回答