Php %0D%0A和/n之间的差异
我正在测试小脚本,试图找出差异 test.php:Php %0D%0A和/n之间的差异,php,Php,我正在测试小脚本,试图找出差异 test.php: <html> <body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></ifr
<html>
<body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>
<h1>Authentication v 0.04</h1>
<form action="" method="GET">
Login <br/>
<input type="text" name="username" /><br/><br/>
Password <br/>
<input type="password" name="password" /><br/><br/>
<br/><br/>
<input type="submit" value="connect" /><br/><br/>
</form>
<fieldset><legend>Authentication log</legend><pre>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo $_GET['username'].'Failed';
$first_line = strstr($_GET['username'], "\n", true);
?>
</pre></fieldset></body></html>
我是怎么得到这个结果的
&如果要检查是否有两行
我可以和你核对一下
现在我检查\n不是%0D%0A
那么它们之间有什么区别呢?\n只是\n而%0D%0A是\r\n
这谈到了\r\n和\r\n之间的区别,而%0D%0A是\r\n
这说明了\r和\n之间的区别,但为什么我尝试localhost/test.php?用户名=%0D%0Aadmin/…它将在同一行中打印admin/n???并将“/n”打印为字符串您使用什么来显示字符串?如果使用var_dump,它将很好地显示字符串。如果使用echo,则会出现问题。无论哪种方式,两个符号都被正确解码和显示,因此我不确定您有什么问题?如果有问题,请使用Trim修剪字符。顺便说一句\r\n和\n在不同的操作系统上表现不同。但为什么我尝试localhost/test.php?用户名=%0D%0Aadmin/…它将在同一行中打印admin/n???并将“/n”打印为字符串您使用什么来显示字符串?如果使用var_dump,它将很好地显示字符串。如果使用echo,则会出现问题。无论哪种方式,两个符号都被正确解码和显示,因此我不确定您有什么问题?如果有问题,请使用Trim修剪字符。顺便说一句\r和\n在不同的操作系统上表现不同。
admin authenticated
whatever failed
$first_line = strstr($_GET['username'], "\n", true);