我希望让某些用户输入一些字段,这些字段又会填充一个(新的)php文件。 (新)文件将是包含简单数组值的语言文件:
$lang['example'] = 'text for example';
基本上我只会用每一行填充文件,一切看起来都很棒。但是,我需要知道如何过滤输入,以便'
,"
和类似的东西不会破坏字符串并为潜在的注入打开空间。
由于php允许使用很多方法来设置代码的样式,因此我不确定addslashes()
是否适合此事。
如何过滤输入以使其可以在php文件中的字符串中?
我找不到任何关于此事的其他问题,只是数据库过滤。
额外信息:
我不希望这些框中有任何HTML。它应该能够处理'
和"
,真正的问题是你可以做这样的事情:
$lang['example'] = 'hackkyyyyy
>>>
// do evil stuff
<<<
';
通过这个,我的意思是你可以用另一种方式'
或"
打破php中的字符串吗?
答案 0 :(得分:0)
这取决于您希望防范的内容以及您的代码被滥用的可能性。我的脑子里有很多方法:
希望这有帮助。
答案 1 :(得分:0)
那么您是否允许用户填写表单并将表单值回显到网页上?我不知道为什么你不能简单地使用PHP过滤器函数来清理输入并在必要时编码特殊字符。
我也不知道为什么数据库的输入验证/清理不适用于此处。也许有人知道并告诉......
顺便说一句。我很满意David Power在PHP面向对象解决方案一书中使用的用户输入验证类。购买这本书(或访问图书馆),您就可以立即使用该代码。
答案 2 :(得分:0)
通常我使用var_export,只是一个例子:
file_put_contents("temp.php",'<?php'. var_export($_POST,true));
当我需要数组时:
$a = include "temp.php";