Default.php
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:3k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <?php 
  2. /*
  3.  * FCKeditor - The text editor for internet
  4.  * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  5.  * 
  6.  * Licensed under the terms of the GNU Lesser General Public License:
  7.  *  http://www.opensource.org/licenses/lgpl-license.php
  8.  * 
  9.  * For further information visit:
  10.  *  http://www.fckeditor.net/
  11.  * 
  12.  * File Name: Default.php
  13.  *  Im not very clued up on authentication but even i can see that anyone 
  14.  *  who can spoof an IP could perform a replay attack on this, but its 
  15.  *  better than nothing. 
  16.  *  There is a 1 hour time out on tokens to help this slightly.
  17.  * 
  18.  * File Authors:
  19.  *  Grant French (grant@mcpuk.net)
  20.  */
  21. class Auth {
  22. function authenticate($data,$fckphp_config) {
  23. //Hold relevant$fckphp_config vars locally
  24. $key=$fckphp_config['auth']['Handler']['SharedKey'];
  25. $fckphp_config['authSuccess']=false;
  26. //Decrypt the data passed to us
  27. $decData="";
  28. for ($i=0;$i<strlen($data)-1;$i+=2) $decData.=chr(hexdec($data[$i].$data[$i+1]));
  29. $decArray=explode("|^SEP^|",$decData);
  30. if (sizeof($decArray)==4) {
  31. //0 = Timestamp
  32. //1 = Client IP
  33. //2 = Username
  34. //3 = MD5
  35. if ($decArray[3]==md5($decArray[0]."|^SEP^|".$decArray[1]."|^SEP^|".$decArray[2].$key)) {
  36. if (time()-$decArray[0]<3600) { //Token valid for max of 1 hour
  37. if ($_SERVER['REMOTE_ADDR']==$decArray[1]) {
  38. //Set the file root to the users individual one
  39. $top=str_replace("//","/",$fckphp_config['basedir'].'/'.$fckphp_config['UserFilesPath']."/users");
  40. $fckphp_config['UserFilesPath']=$fckphp_config['UserFilesPath']."/users/".$decArray[2];
  41. $up=str_replace("//","/",$fckphp_config['basedir'].'/'.$fckphp_config['UserFilesPath']);
  42. if (!file_exists($top)) {
  43. mkdir($top,0777) or die("users folder in UserFilesPath does not exist and could not be created.");
  44. chmod($top,0777);
  45. }
  46. //Create folder if it doesnt exist
  47. if (!file_exists($up)) {
  48. mkdir($up,0777) or die("users/".$decArray[2]." folder in UserFilesPath does not exist and could not be created.");
  49. chmod($up,0777); //Just for good measure
  50. }
  51. //Create resource area subfolders if they dont exist
  52. foreach ($fckphp_config['ResourceTypes'] as $value) {
  53. if (!file_exists("$up/$value")) {
  54. mkdir("$up/$value",0777) or die("users/".$decArray[2]."/$value folder in UserFilesPath does not exist and could not be created.");
  55. chmod("$up/$value",0777); //Just for good measure
  56. }
  57. }
  58. $fckphp_config['authSuccess']=true;
  59. } else {
  60. //Not same client as auth token is for
  61. }
  62. } else {
  63. //Token more than an hour old
  64. }
  65. } else {
  66. //Data integrity failed
  67. }
  68. } else {
  69. //Not enough data (decryption failed?)
  70. }
  71. return $fckphp_config;
  72. }
  73. }
  74. ?>