让用户能够提交代码在php中替换什么? 我打算让用户能够提交一些代码(PHP、java、JavaScript C++等等……不管他们想要什么,我是指)。
那么,有没有人可以向我推荐使我的网站安全的最佳做法让用户能够提交代码在php中替换什么? 我打算让用户能够提交一些代码(PHP、java、JavaScript C++等等……不管他们想要什么,我是指)。,php,regex,security,escaping,Php,Regex,Security,Escaping,那么,有没有人可以向我推荐使我的网站安全的最佳做法 我的意思是,一旦提交了代码字符串,php中要转义的标记/字符/字符串是什么?如果您的目的是在屏幕上显示代码,则在将其存储到数据库之前,不需要转义或替换任何内容(如果您打算存储它)。当然,这不适用于通过mysql\u real\u escape\u string()之类的方法(或您的RDBMS等效的清理例程)进行数据库插入的转义。这一步骤仍然是绝对必要的 显示代码时,请确保: 您不会通过eval()或系统调用评估任何提交的代码 将代码显示回浏览器
我的意思是,一旦提交了代码字符串,php中要转义的标记/字符/字符串是什么?如果您的目的是在屏幕上显示代码,则在将其存储到数据库之前,不需要转义或替换任何内容(如果您打算存储它)。当然,这不适用于通过
mysql\u real\u escape\u string()
之类的方法(或您的RDBMS等效的清理例程)进行数据库插入的转义。这一步骤仍然是绝对必要的
显示代码时,请确保:
eval()
或系统调用评估任何提交的代码如果您的目的是在屏幕上显示代码,则在将代码存储到数据库中之前,不需要转义或替换任何内容(如果您打算存储代码)。当然,这不适用于通过
mysql\u real\u escape\u string()
之类的方法(或您的RDBMS等效的清理例程)进行数据库插入的转义。这一步骤仍然是绝对必要的
显示代码时,请确保:
eval()
或系统调用评估任何提交的代码如果你不想自动运行它,你不需要逃避任何东西(除了通常的mysql环境)。如果你不想自动运行它,你不需要逃避任何东西(除了通常的mysql环境)。我不是专家(我昨天才听说),但至少对于HTML,您可以尝试使用htmlentities(请看)。 一旦使用htmlentities转换了某些内容,它就会变成纯文本,因此如果在浏览器中打开,您将看到标记和所有内容(例如,它将写入
),如果它写入日志或其他内容,然后在基于文本的编辑器中打开,您将看到一些表示html实体的符号和shnaz
如果你需要转换回来,你可以使用html_entity_decode函数,我想,但是我打赌你不需要转换回来
对于其他语言,我不知道你应该做什么。我不是专家(我昨天才听说),但至少对于HTML,你可以尝试使用htmlentities(请看)。
一旦使用htmlentities转换了某些内容,它就会变成纯文本,因此如果在浏览器中打开,您将看到标记和所有内容(例如,它将写入
),如果它写入日志或其他内容,然后在基于文本的编辑器中打开,您将看到一些表示html实体的符号和shnaz
如果你需要转换回来,你可以使用html_entity_decode函数,我想,但是我打赌你不需要转换回来
对于其他语言,我不知道应该做什么。在查询中使用占位符,甚至不必转义输入。 占位符、绑定和准备好的语句绝对是首选方法 对于超过1个查询的任何查询都更快,因为您可以重用句柄,只需更改输入即可 这样更安全。该字符串不随查询一起解释。。。曾经你储存的就是你得到的 我需要更多地了解您的目标sql以给出相关示例,但这里有一些链接: PDO样式绑定: MySqli样式绑定: 当您读回它时,显示为
htmlspecialchars($string, ENT_QUOTES);
ENT_QUOTES选项确保单引号和双引号都被转义。在查询中使用占位符,甚至不必转义输入。 占位符、绑定和准备好的语句绝对是首选方法 对于超过1个查询的任何查询都更快,因为您可以重用句柄,只需更改输入即可 这样更安全。该字符串不随查询一起解释。。。曾经你储存的就是你得到的 我需要更多地了解您的目标sql以给出相关示例,但这里有一些链接: PDO样式绑定: MySqli样式绑定: 当您读回它时,显示为
htmlspecialchars($string, ENT_QUOTES);
ENT\u QUOTES选项确保单引号和双引号都被转义。您想对该代码做什么?你会运行它吗?你想用这些代码做什么?你能运行它吗?对不起,我忘了我正在使用Mongo DB。对不起,我忘了我正在使用Mongo DB