PHP 伪协议

1.file://

file://用于访问本地文件系统,不受allow_url_fopen影响

<?php

include($_GET['file']);

?>

PHP 伪协议PHP 伪协议PHP 伪协议PHP 伪协议

2.http://

GET方法访问文件或资源,allow_url_fopen和allow_url_include都为On时

PHP 伪协议PHP 伪协议

3.php://input

要求allow_url_include=On

在post请求下,php://input可以获取post数据

enctype=”multipart/form-data”的时候,php://input是无效的

<html>
<body>

<form action='sc.php' method='post'>
<input type='text' name='user'>
<input type='submit' name='submit'>
</form>

</body>
</html>

<?php
    echo "input://";
    echo "</br>";
    var_dump(file_get_contents('php://input'));
    echo '</br>';
    echo "\$_POST:";
    echo '</br>';
    var_dump($_POST);
?>

PHP 伪协议PHP 伪协议PHP 伪协议

php://读取的数据是以原始字符串形式存储,$_POST请求的数据是放在数组当中

当enctype=”multipart/form-data”时

<html>
<body>

<form action='sc.php' method='post' enctype="multipart/form-data">
<input type='text' name='user'>
<input type='submit' name='submit'>
</form>

</body>
</html>

PHP 伪协议

php://input就失效了

Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP才会将http请求数据包中相应的数据填入全局变量$_POST

<html>
<body>

<form action='sc.php' method='post' enctype="text/plain">
<input type='text' name='user'>
<input type='submit' name='submit'>
</form>

</body>
</html>

PHP 伪协议

4.php://filter

用来读取网站源码

PHP 伪协议PHP 伪协议

<?php

	$file=$_GET['file'];
	include($file); 

?>
http://127.0.0.1/test/sc.php?file=php://filter/read=convert.base64-encode/resource=sc.php

PHP 伪协议

 
上一篇:Spark ML 几种 归一化(规范化)方法总结


下一篇:ASP.NET 工作流:支持长时间运行操作的 Web 应用程序