我们实现了在线服务,可以生成预定义的 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/