当前位置:
  1. 魔豆IT网
  2. 系统教程
  3. PHP
  4. 正文

<?

$a = '前程似錦';

$b = ';phpinfo();//';

?>

于是找ryat牛讨论了一下这个问题的本质[虽然最后跑开这个问题很远],其实08年时候多字节编码带来的安全问题在全世界都很流行,包括blackhat等会议上都有相关议题出现,而这些都是站在“编码”的这个角度去看待的,而没有具体在应用程序的角度看待这个问题,比如上面的php的处理问题。

其实上面这个代码的本质是php处理方式是按‘单字节’的方式。

那么就不难理解了:錦 ---> E55C 因为php单字节的处理方式最后是 E5 5C 两个独立的字节来处理,而5C-->\相当于:

<?

$a = '前程似*\';

$b = ';phpinfo();//';

?>

\转义了后面的‘,最终导致phpinfo();的执行。

由此我们可以看出,单字节处理的程序在处理多字节编码的时候,很有可能因为“标准不和谐统一”,导致安全问题。

在我和ryat离题的讨论里,他坚持说是文件的编码问题,而我认为是php单字节的处理方式才是问题的关键所在..... 其实这是我们俩看问题的角度的问题导致的....

对于一个广义的命题应该说:程序员在处理问题的标准不统一可能导致的安全问题。

相关阅读

  • 暂无推荐

《》由网友“”推荐。

转载请注明: