当前位置: 首页 > 面试题库 >

终极清洁/安全功能

丌官博文
2023-03-14
问题内容

从我有很多的用户输入$_GET$_POST…此刻我总是写mysql_real_escape_string($_GET['var'])..

我想知道您是否可以创建一个可以立即保护,转义和清理$_GET/ $_POST数组的函数,因此您不必在每次使用用户输入等时都进行处理。

我在想一个功能,例如cleanMe($input),和它里面,它应该做的mysql_real_escape_stringhtmlspecialcharsstrip_tagsstripslashes(我想这是所有做它的清洁与安全),然后返回$input

那有可能吗?制作一个适用于$_GET和的函数$_POST,因此您只需执行以下操作:

$_GET  = cleanMe($_GET);
$_POST = cleanMe($_POST);

因此,在以后的代码中,当您使用eg $_GET['blabla']或时$_POST['haha'],它们是否已固定,剥离等?

试了一下自己:

function cleanMe($input) {
   $input = mysql_real_escape_string($input);
   $input = htmlspecialchars($input, ENT_IGNORE, 'utf-8');
   $input = strip_tags($input);
   $input = stripslashes($input);
   return $input;
}

问题答案:

通用卫生功能的概念是一个破损的概念。

一个 适用于各种用途的权利卫生法。在字符串上不加选择地运行它们通常会破坏它-为SQL查询转义一段HTML代码会破坏它在网页中的使用,反之亦然。
使用数据 之前, 应立即进行卫生处理

  • htmlspecialchars() 用于安全的HTML输出

  • preg_quote() 用于正则表达式

  • escapeshellarg()/ escapeshellcmd()用于外部命令

  • 等等等

使用“一刀切”的卫生功能就像在植物上使用五种剧毒杀虫剂,该杀虫剂定义上仅包含一种虫子-只是发现您的植物受到第六种虫害,而第六种却没有的杀虫剂起作用。

始终使用一种正确的方法,最好是直接使用,然后再将数据传递给函数。除非需要,否则 不要 混合使用方法。



 类似资料:
  • 我在AWS EC2上运行了一些docker容器,/var/lib/docker/overlay2文件夹的磁盘大小增长非常快。 我想知道删除它的内容是否安全?或者如果docker有某种命令来释放一些磁盘使用量。 更新: 实际上,我已经尝试了docker系统prune-a,它回收了0Kb。 此外,my/docker/overlay2磁盘大小比docker system df的输出大得多 在阅读了doc

  • 我是学习java编程的新手!我想在maven项目中制作一个。jar。在运行此命令后,我将得到以下错误消息:

  • 我正在使用Tycho插件来编译一个Eclipse插件项目。当我运行命令时 我的生成通行证 我的生成失败,原因如下: 失败stacktrace为: 从我在Maven上可以找到的所有东西来看,调用阶段应该隐式地触发阶段。这是怎么回事?

  • 和之间到底有什么区别?当我运行这两个命令时,它们似乎都在做同样的事情。

  • 我想知道是否有人能帮上忙。清理和构建最简单的项目时出错。(见下文) 导致错误的步骤: 作为一名新员工,也就是一台不超过4个月的机器上的新用户,我从打开NetBeans 8.2开始——一周前为我安装了NetBeans和Android Studio(用于sdk)。 但是没有安装Android插件,所以我实现了nbandroid更新中心来安装插件。然后我连接了sdk——在users\user中找到。us

  • 关于Maven的小问题,以及安装和站点之间的区别。 当运行一个非常基本的干净安装时,我可以看到单元测试运行良好,完全没有问题。 然后,我得到了为项目生成一个网站的要求,以放置测试报告、javadoc等... 因此,我只是在maven生命周期中更进一步,使用mvn clean site而不是mvn Clear install。 然而,令人惊讶的是,mvn干净的网站似乎没有运行测试用例。(与 mvn