Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让用户能够提交代码在php中替换什么? 我打算让用户能够提交一些代码(PHP、java、JavaScript C++等等……不管他们想要什么,我是指)。_Php_Regex_Security_Escaping - Fatal编程技术网

让用户能够提交代码在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