表单输入到php文件

时间:2012-07-06 11:42:07

标签: php security codeigniter

我希望让某些用户输入一些字段,这些字段又会填充一个(新的)php文件。 (新)文件将是包含简单数组值的语言文件:

$lang['example'] = 'text for example';

基本上我只会用每一行填充文件,一切看起来都很棒。但是,我需要知道如何过滤输入,以便'"和类似的东西不会破坏字符串并为潜在的注入打开空间。

由于php允许使用很多方法来设置代码的样式,因此我不确定addslashes()是否适合此事。

如何过滤输入以使其可以在php文件中的字符串中?

我找不到任何关于此事的其他问题,只是数据库过滤。

额外信息:
我不希望这些框中有任何HTML。它应该能够处理'",真正的问题是你可以做这样的事情:

$lang['example'] = 'hackkyyyyy
>>>
// do evil stuff
<<<
';

通过这个,我的意思是你可以用另一种方式'"打破php中的字符串吗?

3 个答案:

答案 0 :(得分:0)

这取决于您希望防范的内容以及您的代码被滥用的可能性。我的脑子里有很多方法:

    正如你在问题中所说的那样
  1. addslashes()
  2. str_replace()为您要删除的每个项目
  3. filter_var()可能对您有用,具体取决于几个变量
  4. 希望这有帮助。

答案 1 :(得分:0)

那么您是否允许用户填写表单并将表单值回显到网页上?我不知道为什么你不能简单地使用PHP过滤器函数来清理输入并在必要时编码特殊字符。

我也不知道为什么数据库的输入验证/清理不适用于此处。也许有人知道并告诉......

顺便说一句。我很满意David Power在PHP面向对象解决方案一书中使用的用户输入验证类。购买这本书(或访问图书馆),您就可以立即使用该代码。

答案 2 :(得分:0)

通常我使用var_export,只是一个例子:

file_put_contents("temp.php",'<?php'. var_export($_POST,true));

当我需要数组时:

$a = include "temp.php";