php打开远程文件的方法和风险及解决方法
|
PHP有一个配置选项叫allow_url_fopen,该选项默认是有效的。它允许你指向许多类型的资源,并像本地文件一样处理。例如,通过读取URL你可以取得某一个页面的内容(HTML),看下面的代码 解决方案是永远不要用被污染的数据去指向一个文件名。要坚持过滤输入,同时确信在数据指向一个文件名之前被过滤即可:<div class="codetitle"><a style="CURSOR: pointer" data="92719" class="copybut" id="copybut92719" onclick="doCopy('code92719')"> 代码如下:<div class="codebody" id="code92719"> <?php $clean = array(); / Filter Input ($_GET['filename']) / $contents = file_get_contents($clean['filename']); ?> 尽管无法保证$content中的数据完全没有问题,但这还是给出了一个合理的保证,即你读取的文件正是你想要读取的文件,而不是由攻击者指定的。为加强这个流程的安全性,你同样需要把$content看成是输入,并在使用前对它进行过滤。 <div class="codetitle"><a style="CURSOR: pointer" data="74156" class="copybut" id="copybut74156" onclick="doCopy('code74156')"> 代码如下:<div class="codebody" id="code74156"> <?php $clean = array(); $html = array(); / Filter Input ($_GET['filename']) / $contents = file_get_contents($clean['filename']); / Filter Input ($contents) / $html['contents'] = htmlentities($clean['contents'],ENT_QUOTES,'UTF-8'); echo $html['contents']; ?> 上面的流程提供了防范多种攻击的强有力的方法,同时在实际编程中推荐使用。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
