php - 如何转义/去除 LaTeX 文档中的特殊字符?

标签 php latex escaping strip

我们实现了在线服务,可以生成预定义的 PDF 结构体。用户可以选择一个 LaTeX 模板,然后使用适当的输入对其进行编译。

我们担心的问题是安全问题,恶意用户无法通过向 latex 文档中注入(inject)特殊指令来获得 shell 访问权限。

我们需要一些解决方法来解决这个问题,或者至少需要一个我们应该从输入数据中删除的特殊字符列表。

首选语言是 PHP,但欢迎任何建议、结构和链接。

附言。简而言之,我们正在为 LaTeX 寻找 mysql_real_escape_string

最佳答案

下面是一些用于实现 Geoff Reedy 答案的代码。我将此代码放在公共(public)域中。

<?

$test = "Test characters: # $ % & ~ _ ^ \ { }.";
header( "content-type:text/plain" );
print latexSpecialChars( $test );
exit;

function latexSpecialChars( $string )
{
    $map = array( 
            "#"=>"\\#",
            "$"=>"\\$",
            "%"=>"\\%",
            "&"=>"\\&",
            "~"=>"\\~{}",
            "_"=>"\\_",
            "^"=>"\\^{}",
            "\\"=>"\\textbackslash",
            "{"=>"\\{",
            "}"=>"\\}",
    );
    return preg_replace( "/([\^\%~\\\\#\$%&_\{\}])/e", "\$map['$1']", $string );
}

关于php - 如何转义/去除 LaTeX 文档中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2541616/

相关文章:

uwp - 在 UWP 中以 LaTeX 形式的字符串渲染数学方程

bash - 在 bash 中嵌套引号

javascript - 防止node-oracledb中的SQL注入(inject)

php - php SESSION中的多维数组

php - 插入触发器上的数据库 phpmyadmin

documentation - 控制 Doxygen 的 LaTeX 输出以制作 PDF 文档

r - RStudio 中 R markdown 文档中的自动编号方程

python - 用于与特殊转义规则匹配的字符串的正则表达式

php - 如何通过 phpDoc 记录函数内部的变量

php - 是否可以将数组转储到 mysql 文本字段中并将其作为数组读回?