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

2024-01-04

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

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

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

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

附言。简而言之,我们正在寻找mysql_real_escape_string用于乳胶


这是一些实现 Geoff Reedy 答案的代码。我将此代码置于公共领域。

<?

$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 );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何转义/删除 LaTeX 文档中的特殊字符? 的相关文章

随机推荐