2

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

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

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

由于 php 允许多种方式来设置代码样式,因此我不确定 aaddslashes()是否足以解决此问题。

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

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

额外信息:
我不想要这些框中的任何 html。它应该能够处理'and ",真正的问题是你能做这样的事情:

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

那样的话,我的意思是你可以用其他方式'或者"在php中破坏一个字符串吗?

4

3 回答 3

0

这取决于您要防止什么以及您的代码被滥用的可能性有多大。我有很多方法:

  1. addlashes() 正如您在问题中所说
  2. str_replace() 用于您要删除的每个项目
  3. filter_var() 可能对您有用,具体取决于几个变量

希望这可以帮助。

于 2012-07-06T11:50:34.450 回答
0

所以你让用户填写表单,表单值会在网页上回显?我不知道为什么您不能简单地使用 PHP 过滤器函数来清理输入并在必要时对特殊字符进行编码。

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

顺便提一句。我很满意 David Power 在 PHP Object Oriented Solutions 一书中使用的用户输入验证类。购买这本书(或访问图书馆),您就可以立即使用该代码。

于 2012-07-06T11:58:02.723 回答
0

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

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

当我需要数组时:

$a = include "temp.php";
于 2012-07-06T12:03:50.590 回答