本题基于thisthread.使用pg_prepare时是否需要显式清理?我觉得pg_prepare会自动清理用户的输入,所以我们不需要这个$question_id=filter_input(INPUT_GET,'questions',FILTER_SANITIZE_NUMBER_INT);我使用Postgres的环境$result=pg_prepare($dbconn,"query9","SELECTtitle,answerFROManswersWHEREquestions_question_id=$1;");$result=pg_execute($dbconn,"query9",a
我在使用FILTER_SANITIZE_STRING时遇到了一个奇怪的问题在一个变量上(由人工输入填充)。它似乎剥离了字符和之后的任何文本。>字符保持不变。我假设它认为是一个需要被剥离的HTML标签,但是它后面没有结束标签,所以我不知道为什么它会那样做。有没有办法让它离开到位,并仍然按照应有的方式进行sanitizer? 最佳答案 根本问题是,当您使用FILTER_SANITIZE_STRING去除HTML标签时,您将输入作为HTML处理。根据您的描述,您输入的是纯文本。因此,过滤器只能破坏输入数据,正如用户已经报告的那样。虽然这似
我正在努力寻找一种让用户提交数据的好方法,在这种情况下允许HTML并尽可能安全和快速。我知道这个网站上的每个人似乎都在想http://htmlpurifier.org是这里的答案。我部分同意。htmlpurifier拥有用于过滤用户提交的HTML的最佳开源代码,但该解决方案非常庞大,不利于高流量站点的性能。我什至有一天可能会使用那里的解决方案,但现在我的目标是找到一种更轻量级的方法。我已经使用下面的2个函数大约2年半了,目前还没有遇到任何问题,但我认为是时候听取专业人士的意见了,如果他们能帮助我的话。第一个函数称为FilterHTML($string),它在用户数据保存到mysql数据
出于经验哪个更好用filter_input(INPUT_GET,‘my_string’,FILTER_SANITIZE_STRING);或者用于清理用户输入数据的正则表达式preg_match? 最佳答案 我更喜欢filter_input而不是正则表达式-因为它更容易阅读。 关于php-filter_input(INPUT_GET,‘my_string’,FILTER_SANITIZE_STRING);VS正则表达式预匹配PHP,我们在StackOverflow上找到一个类似的问题:
我正在使用HTML5和Javascript构建所见即所得的编辑器。我将允许用户通过所见即所得发布纯HTML,因此必须对其进行清理。保护站点免受跨站点脚本(XSS)侵害等基本任务正在成为一项艰巨的任务,因为没有适用于PHP的最新净化和过滤软件。HTMLPurifier目前不支持HTML5,整体状态看起来非常糟糕(短期内不会支持HTML5)。那么我应该如何使用PHP(后端)清理不受信任的HTML5?到目前为止的选项...HTML净化器(缺少新的HTML5标签、数据属性等)使用strip_tags()和Tidy或PHP的DOM类/函数实现自己的净化器使用一些“随机”的Tidy实现,例如h
有哪些好的PHPhtml(输入)sanitizer?最好是,如果内置了某些东西-我希望我们能做到这一点。更新:根据请求,通过评论,输入应该不允许HTML(并且显然防止XSS和SQL注入(inject)等)。 最佳答案 html净化器->http://htmlpurifier.org/ 关于PHP输入sanitizer?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2745058
这是一个简单的问题,但我是新手所以请原谅我的简单问题。是否有一种简单的方法可以逆转FILTER_SANITIZE_SPECIAL_CHARS过滤器的影响?如果不是,你将如何扭转它。请不要只说正则表达式,实际上建议如何。需要明确的是,我不想反转字符串。下面是一些示例代码来帮助解释我想做什么:/***astringwithtags***/$string="!@#$%^&*\n\'#foo";/***sanitizethestring***/$x=filter_var($string,FILTER_SANITIZE_SPECIAL_CHARS);echo$x."\n";/***Iwantth
尝试验证然后清理$_GET请求。我只是想看看我是否遗漏了什么。这是我的...if(isset($_GET['id'])){$id=filter_input(INPUT_GET,'id',FILTER_VALIDATE_INT);if(!$id){echo'Error';exit();}$id=filter_input(INPUT_GET,'id',FILTER_SANITIZE_NUMBER_INT);$getinfo=mysqli_query($link,sprintf("SELECTcolumn1,column2FROMtableWHEREid='%s'",mysqli_real_
我构建了一个php脚本来输出以表单形式发布的数据,但我遇到了一个问题。该网站将要运行的服务器运行PHP5.1.6。此版本的PHP不支持filter_var。我需要知道短期内(最好是昨天)的替代方案,但在Google或StackOverflow上找不到直接的东西。也许这里有人过去遇到过同样的问题并为我提供了快速解决方案?这段代码:$email=filter_var($_POST['email'],FILTER_SANITIZE_EMAIL);$answer=filter_var($_POST['answer'],FILTER_SANITIZE_STRING);需要兼容PHP5.1.6,所
有谁知道如何防止FILTER_SANITIZE_SPECIAL_CHARS将换行符(\n)转换为()。我正在为我的网站开发一个简单的评论系统,我发现php过滤器将\n转换为所以当使用nl2br()时没有换行符。请帮忙。谢谢:) 最佳答案 filter_var与FILTER_SANITIZE_SPECIAL_CHARS选项正在做它应该做的事情:HTML-escape'"&andcharacterswithASCIIvaluelessthan32,optionallystriporencodeotherspecialcharacters