• R/O
  • SSH
  • HTTPS

websvn-admin: Commit


Commit MetaInfo

Revision6 (tree)
Zeit2011-01-17 21:15:32
Autorinoue-h

Log Message

認証の文字長さ制限、禁止文字制限、auth.dat書き込み失敗通知

Ändern Zusammenfassung

Diff

--- trunc/include/auth.php (revision 5)
+++ trunc/include/auth.php (revision 6)
@@ -102,8 +102,20 @@
102102 if(isset($_POST['newuser']) && isset($_POST['password1']) && isset($_POST['password2'])){
103103 // パスワードの変更
104104 if($_POST['password1'] === $_POST['password2']){
105- ChangeAuthFile($_POST['newuser'], $_POST['password1']);
106- return('ユーザ名とパスワードを変更しました');
105+ // 禁止文字、文字列長さのチェック
106+ if(!preg_match("/^[A-Za-z0-9\-]+$/", $_POST['newuser']) || !preg_match("/^[A-Za-z0-9\-]+$/", $_POST['password1']) ||
107+ strlen($_POST['newuser']) > 20 || strlen($_POST['password1']) > 20){
108+ return('Error : ユーザ名とパスワードは20文字以内、A-Z,a-z,0-9の文字しか許容されません');
109+ }
110+ else{
111+ // ユーザ名・パスワードの変更
112+ if(ChangeAuthFile($_POST['newuser'], $_POST['password1']) > 0){
113+ return('ユーザ名とパスワードを変更しました');
114+ }
115+ else{
116+ return('Error : 認証ファイル '.$strAuthDataFile.' に書き込めません');
117+ }
118+ }
107119 }
108120 return('Error : パスワードが一致しません');
109121 }
@@ -152,6 +164,12 @@
152164 global $strAuthDataFile;
153165 $strUser = '';
154166 $strPassword = '';
167+
168+ // 禁止文字、文字列長さのチェック
169+ if(!preg_match("/^[A-Za-z0-9\-]+$/", $strNewUser) || !preg_match("/^[A-Za-z0-9\-]+$/", $strNewPassword) ||
170+ strlen($strNewUser) > 20 || strlen($strNewPassword) > 20){
171+ return('');
172+ }
155173
156174 $flag_ok = 0;
157175
@@ -186,6 +204,7 @@
186204 }
187205
188206
207+// 認証ファイルに新ユーザ名、パスワードをセットする
189208 function ChangeAuthFile($strNewUser, $strNewPassword)
190209 {
191210 global $strAuthDataFile;
@@ -194,7 +213,11 @@
194213 fwrite($fh, "# user, password\n");
195214 fwrite($fh, $strNewUser.",".md5($strNewPassword)."\n");
196215 fclose($fh);
216+ return(1); // 成功
197217 }
218+ else{
219+ return(-1); // 失敗
220+ }
198221
199222 }
200223
Show on old repository browser