如何避免用户在我的表单中输入php代码

时间:2010-08-28 15:06:05

标签: php encoding sql-injection

如何阻止用户将<?php ?>输入我的表单。

我正在使用urlencode(),然后在将数据回显到我的页面时使用urldecode(),最好的办法是什么?

更新

我正在使用文本urlencoded写入数据库:

htmlentities (urlencode($_POST['postmessage']));

我正在使用:

<?php echo htmlentities (urldecode($row['content'])) ?>

回显保存的数据。那够了吗?

3 个答案:

答案 0 :(得分:4)

我建议你使用HTML Purifier

  

HTML Purifier符合标准   用PHP编写的HTML过滤器库。   HTML Purifier不仅会删除所有内容   恶意代码(俗称为   XSS)经过全面审核,
  它安全但宽容的白名单   还将确保您的文件   符合标准,只有一些东西   可以全面实现   了解W3C的规范。

答案 1 :(得分:0)

好吧,你可以摆脱不属于网址的所有字符

$var = filter_var($url, FILTER_SANITIZE_URL);

然后您可以检查它是否是有效的网址

$var = filter_var($url, FILTER_VALIDATE_URL);
if($var == false)
    die("Bad URL");

答案 2 :(得分:0)

你在做什么代码?执行它? 当你回应PHP代码时,不需要担心服务器端...你宁愿做html_entity_encode来防止你的网站被iframes / javascripts用户帖子弄乱或者注入