Subversion Repositories ALCASAR

Rev

Rev 2207 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 2207 Rev 2241
Line 1... Line 1...
1
<?php
1
<?php
2
# $Id: index.php 2207 2017-05-06 18:10:53Z tom.houdayer $
2
# $Id: index.php 2241 2017-05-20 22:32:36Z tom.houdayer $
3
#
3
#
4
# change user password on ALACASAR NAC
4
# change user password on ALACASAR NAC
5
# Copyright (C) 2003, 2004 Mondru AB.
5
# Copyright (C) 2003, 2004 Mondru AB.
6
# Copyright (C) 2008-20017 ANGEL95 & REXY
6
# Copyright (C) 2008-20017 ANGEL95 & REXY
7
 
7
 
-
 
8
/****************************************************************
-
 
9
*			GLOBAL FILE PATHS			*
-
 
10
*****************************************************************/
8
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
11
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
9
 
12
 
-
 
13
/****************************************************************
-
 
14
*			FILE reading test			*
-
 
15
*****************************************************************/
-
 
16
$conf_files = array(CONF_FILE);
-
 
17
foreach ($conf_files as $file) {
-
 
18
	if (!file_exists($file)) {
-
 
19
		exit("Fichier $file non présent");
-
 
20
	}
-
 
21
	if (!is_readable($file)) {
-
 
22
		exit("Vous n'avez pas les droits de lecture sur le fichier $file");
-
 
23
	}
-
 
24
}
-
 
25
 
-
 
26
/****************************************************************
10
// Read CONF_FILE
27
*			Read CONF_FILE				*
-
 
28
*****************************************************************/
11
$file_conf = fopen(CONF_FILE, 'r');
29
$file_conf = fopen(CONF_FILE, 'r');
12
if (!$file_conf) {
30
if (!$file_conf) {
13
	exit('Error opening the file '.CONF_FILE);
31
	exit('Error opening the file '.CONF_FILE);
14
}
32
}
15
while (!feof($file_conf)) {
33
while (!feof($file_conf)) {
16
	$tampon = fgets($file_conf, 4096);
34
	$buffer = fgets($file_conf, 4096);
17
	if ((strpos($tampon, '=') !== false) && (substr($tampon, 0, 1) !== '#')) {
35
	if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
18
		$tmp = explode('=', $tampon);
36
		$tmp = explode('=', $buffer);
19
		$conf[$tmp[0]] = trim($tmp[1]);
37
		$conf[$tmp[0]] = trim($tmp[1]);
20
	}
38
	}
21
}
39
}
22
fclose($file_conf);
40
fclose($file_conf);
23
 
41
 
24
require('/etc/freeradius-web/config.php');
42
require('/etc/freeradius-web/config.php');
25
 
43
 
26
$current_page = htmlspecialchars($_SERVER['PHP_SELF']);
44
$current_page = htmlspecialchars($_SERVER['PHP_SELF']);
27
$homepage = (((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')) ? 'https' : 'http').'://'.trim($conf['HOSTNAME']).'.'.trim($conf['DOMAIN']);
45
$homepage = (((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')) ? 'https' : 'http').'://'.$conf['HOSTNAME'].'.'.$conf['DOMAIN'];
28
 
46
 
29
# Choice of language
47
// Choice of language
30
$Language = 'en';
48
$Language = 'en';
31
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
49
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
32
  $Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
50
	$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
33
  $Language = strtolower(substr(chop($Langue[0]),0,2)); }
51
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
34
if($Language == 'es'){
52
}
35
$R_title = "User password change";
53
if ($Language === 'es') {		// Spanish
36
$R_form_l1 = "User";
54
	$l_title			= "User password change";
37
$R_form_l2 = "Old password";
55
	$l_form_l1			= "User";
38
$R_form_l3 = "New password";
56
	$l_form_l2			= "Old password";
39
$R_form_l4 = "New password (confirmation)";
57
	$l_form_l3			= "New password";
40
$R_eval_pass = "Score :";
58
	$l_form_l4			= "New password (confirmation)";
41
$R_passwordmeter = "Powered by 'Shibbo Password Analyser'</a>";
59
	$l_eval_pass			= "Score :";
42
$R_form_button_valid = "Modify";
60
	$l_passwordmeter		= "Powered by 'Shibbo Password Analyser'";
43
$R_form_button_retour = "Cancel";
61
	$l_form_button_valid		= "Modify";
44
$R_form_result1 = "Your password has been successfuly changed";
62
	$l_form_button_retour		= "Cancel";
45
$R_form_result2 = "Error when trying to change password";
63
	$l_form_result1			= "Your password has been successfuly changed";
46
$R_retour = "ALCASAR home page";}
64
	$l_form_result2			= "Error when trying to change password";
47
else if ($Language == 'pt'){
65
} else if ($Language === 'pt') {	// Portuguese
48
$R_title = "Alteração de senha do usuário";
66
	$l_title			= "Alteração de senha do usuário";
49
$R_form_l1 = "Usuário";
67
	$l_form_l1			= "Usuário";
50
$R_form_l2 = "Senha antiga";
68
	$l_form_l2			= "Senha antiga";
51
$R_form_l3 = "Nova senha";
69
	$l_form_l3			= "Nova senha";
52
$R_form_l4 = "Nova senha (confirmação)";
70
	$l_form_l4			= "Nova senha (confirmação)";
53
$R_eval_pass = "Resultado:";
71
	$l_eval_pass			= "Resultado:";
54
$R_passwordmeter = "Powered by 'Shibbo Password Analyser'</a>";
72
	$l_passwordmeter		= "Powered by 'Shibbo Password Analyser'";
55
$R_form_button_valid = "Modificar";
73
	$l_form_button_valid		= "Modificar";
56
$R_form_button_retour = "Cancelar";
74
	$l_form_button_retour		= "Cancelar";
57
$R_form_result1 = "Sua senha foi alterada com sucesso";
75
	$l_form_result1			= "Sua senha foi alterada com sucesso";
58
$R_form_result2 = "Erro ao tentar alterar a senha";
76
	$l_form_result2			= "Erro ao tentar alterar a senha";
59
$R_retour = "Home page Alcasar";}
77
} else if ($Language === 'de') {	// German
60
else if($Language == 'de'){
78
	$l_title			= "User password change";
61
$R_title = "User password change";
79
	$l_form_l1			= "User";
62
$R_form_l1 = "User";
80
	$l_form_l2			= "Old password";
63
$R_form_l2 = "Old password";
81
	$l_form_l3			= "New password";
64
$R_form_l3 = "New password";
82
	$l_form_l4			= "New password (confirmation)";
65
$R_form_l4 = "New password (confirmation)";
83
	$l_eval_pass			= "Score :";
66
$R_eval_pass = "Score :";
84
	$l_passwordmeter		= "Powered by 'Shibbo Password Analyser'";
67
$R_passwordmeter = "Powered by 'Shibbo Password Analyser'</a>";
85
	$l_form_button_valid		= "Modify";
68
$R_form_button_valid = "Modify";
86
	$l_form_button_retour		= "Cancel";
69
$R_form_button_retour = "Cancel";
87
	$l_form_result1			= "Your password has been successfuly changed";
70
$R_form_result1 = "Your password has been successfuly changed";
88
	$l_form_result2			= "Error when trying to change password";
71
$R_form_result2 = "Error when trying to change password";
89
} else if ($Language === 'nl') {	// Dutch
72
$R_retour = "ALCASAR home page";}
90
	$l_title			= "User password change";
73
else if($Language == 'nl'){
91
	$l_form_l1			= "User";
74
$R_title = "User password change";
92
	$l_form_l2			= "Old password";
75
$R_form_l1 = "User";
93
	$l_form_l3			= "New password";
76
$R_form_l2 = "Old password";
94
	$l_form_l4			= "New password (confirmation)";
77
$R_form_l3 = "New password";
95
	$l_eval_pass			= "Score :";
78
$R_form_l4 = "New password (confirmation)";
96
	$l_passwordmeter		= "Powered by 'Shibbo Password Analyser'";
79
$R_eval_pass = "Score :";
97
	$l_form_button_valid		= "Modify";
80
$R_passwordmeter = "Powered by 'Shibbo Password Analyser'</a>";
98
	$l_form_button_retour		= "Cancel";
81
$R_form_button_valid = "Modify";
99
	$l_form_result1			= "Your password has been successfuly changed";
82
$R_form_button_retour = "Cancel";
100
	$l_form_result2			= "Error when trying to change password";
83
$R_form_result1 = "Your password has been successfuly changed";
101
} else if ($Language === 'zh') {	// Chinese
84
$R_form_result2 = "Error when trying to change password";
102
	$l_title			= "修改用户密码";
85
$R_retour = "ALCASAR home page";}
103
	$l_form_l1			= "用户";
86
else if($Language == 'zh'){
104
	$l_form_l2			= "旧密码";
87
$R_title = "修改用户密码";
105
	$l_form_l3			= "新密码";
88
$R_form_l1 = "用户";
106
	$l_form_l4			= "新密码(确认)";
89
$R_form_l2 = "旧密码";
107
	$l_eval_pass			= ""; // TODO: to translate
90
$R_form_l3 = "新密码";
108
	$l_passwordmeter		= "技术支持 'Shibbo Password Analyser'";
91
$R_form_l4 = "新密码(确认)";
109
	$l_form_button_valid		= "修改";
92
$R_eval_pass = "";
110
	$l_form_button_retour		= "取消";
93
$R_passwordmeter = "技术支持 'Shibbo Password Analyser'</a>";
111
	$l_form_result1			= "您的密码已成功修改";
94
$R_form_button_valid = "修改";
112
	$l_form_result2			= "修改密码出错";
95
$R_form_button_retour = "取消";
113
} else if ($Language === 'ar') {	// Arabic
96
$R_form_result1 = "您的密码已成功修改";
114
	$l_title			= "تغيير كلمة المرور للمستخدم";
97
$R_form_result2 = "修改密码出错";
115
	$l_form_l1			= "المستعمل";
98
$R_retour = "返回首页";}
116
	$l_form_l2			= "كلمه السر القديمة";
99
else if ($Language == 'ar'){
117
	$l_form_l3			= "كلمة السر الجديدة";
100
$R_title = "تغيير كلمة المرور للمستخدم";
118
	$l_form_l4			= "كلمة السر الجديدة (أكد)";
101
$R_form_l1 = "المستعمل";
119
	$l_eval_pass			= ""; // TODO: to translate
102
$R_form_l2 = "كلمه السر القديمة";
120
	$l_passwordmeter		= "مشغل بواسطة 'Shibbo Password Analyser'";
103
$R_form_l3 = "كلمة السر الجديدة";
121
	$l_form_button_valid		= "تغيير";
104
$R_form_l4 = "كلمة السر الجديدة (أكد)";
122
	$l_form_button_retour		= "إلغاء";
105
$R_eval_pass = "";
123
	$l_form_result1			= "تم تغيير الرقم السري بنجاح";
106
$R_passwordmeter = "مشغل بواسطة 'Shibbo Password Analyser'" . "</a>";
124
	$l_form_result2			= "خطأ عند محاولة تغيير كلمة المرور";
107
$R_form_button_valid = "تغيير";
125
} else if ($Language === 'fr') {	// French
108
$R_form_button_retour = "إلغاء";
126
	$l_title			= "Changement de mot de passe utilisateur";
109
$R_form_result1 = "تم تغيير الرقم السري بنجاح";
127
	$l_form_l1			= "Utilisateur :";
110
$R_form_result2 = "خطأ عند محاولة تغيير كلمة المرور";
128
	$l_form_l2			= "Ancien mot de passe :";
111
$R_retour = "رجوع إلى الصفحة الرئيسية ALCASAR";	
129
	$l_form_l3			= "Nouveau mot de passe :";
112
}
130
	$l_form_l4			= "Nouveau mot de passe (confirmation) :";
113
else if($Language == 'fr'){
131
	$l_eval_pass			= "Score :";
114
$R_title = "Changement de mot de passe utilisateur";
132
	$l_passwordmeter		= "Propulsé par 'Shibbo Password Analyser'";
115
$R_form_l1 = "Utilisateur :";
133
	$l_form_button_valid		= "Modifier";
116
$R_form_l2 = "Ancien mot de passe :";
134
	$l_form_button_retour		= "Annuler";
117
$R_form_l3 = "Nouveau mot de passe :";
135
	$l_form_result1			= "Votre mot de passe a été modifié avec succès";
118
$R_form_l4 = "Nouveau mot de passe (confirmation) :";
136
	$l_form_result2			= "Erreur de changement de mot de passe";
119
$R_eval_pass = "";
137
} else {				// English
120
$R_passwordmeter = "Propulsé par 'Shibbo Password Analyser'</a>";
138
	$l_title			= "User password change";
121
$R_form_button_valid = "Modifier";
139
	$l_form_l1			= "User";
122
$R_form_button_retour = "Annuler";
140
	$l_form_l2			= "Old password";
123
$R_form_result1 = "Votre mot de passe a &eacute;t&eacute; modifi&eacute; avec succ&egrave;s";
141
	$l_form_l3			= "New password";
124
$R_form_result2 = "Erreur de changement de mot de passe";
142
	$l_form_l4			= "New password (confirmation)";
125
$R_retour = "Retour &agrave; la page d'accueil ALCASAR";}
143
	$l_eval_pass			= "Score:";
126
else {
144
	$l_passwordmeter		= "Powered by 'Shibbo Password Analyser'";
127
$R_title = "User password change";
145
	$l_form_button_valid		= "Modify";
128
$R_form_l1 = "User";
146
	$l_form_button_retour		= "Cancel";
129
$R_form_l2 = "Old password";
147
	$l_form_result1			= "Your password has been successfuly changed";
130
$R_form_l3 = "New password";
148
	$l_form_result2			= "Error when trying to change password";
131
$R_form_l4 = "New password (confirmation)";
149
}
132
$R_eval_pass = "Score :";
150
 
133
$R_passwordmeter = "Powered by 'Shibbo Password Analyser'</a>";
151
if (isset($action)) {
134
$R_form_button_valid = "Modify";
152
	if ($action === 'checkpass') {
135
$R_form_button_retour = "Cancel";
153
		if (!is_file("../acc/manager/lib/sql/drivers/$config[sql_type]/functions.php")) {
136
$R_form_result1 = "Your password has been successfuly changed";
154
			exit('<b>Could not include SQL library</b>');
137
$R_form_result2 = "Error when trying to change password";
155
		}
138
$R_retour = "ALCASAR home page";
156
		require_once("../acc/manager/lib/sql/drivers/$config[sql_type]/functions.php");
-
 
157
		$link = @da_sql_pconnect($config);
-
 
158
		if ($link) {
-
 
159
			$sql = "SELECT attribute,value FROM $config[sql_check_table] WHERE username = '$login' AND attribute = '$config[sql_password_attribute]';";
-
 
160
			$res = @da_sql_query($link,$config, $sql);
-
 
161
			if ($res) {
-
 
162
				$row = @da_sql_fetch_array($res, $config);
-
 
163
				if (!is_file("crypt/$config[general_encryption_method].php")) {
-
 
164
					exit('<b>Could not open encryption library file</b>');
-
 
165
				}
-
 
166
				include("crypt/$config[general_encryption_method].php");
-
 
167
				$enc_passwd = $row['value'];
-
 
168
				$passwd     = da_encrypt($passwd,$enc_passwd);
-
 
169
				$newpasswd  = da_encrypt($newpasswd,$enc_passwd);
-
 
170
				$newpasswd2 = da_encrypt($newpasswd2,$enc_passwd);
-
 
171
				if (($passwd === $enc_passwd) && ($newpasswd === $newpasswd2)) {
-
 
172
					$sql = "UPDATE $config[sql_check_table] SET value='$newpasswd' WHERE username = '$login' AND attribute = '$config[sql_password_attribute]';";
-
 
173
					$res2 = @da_sql_query($link, $config, $sql);
-
 
174
					$changePasswordMessage = '<font color=blue><b>'.$l_form_result1.'</b></font>';
-
 
175
				} else {
-
 
176
					$changePasswordMessage = '<font color=red><b>'.$l_form_result2.'</b></font>';
-
 
177
				}
-
 
178
			}
139
}
179
		}
140
echo "
180
	}
-
 
181
}
-
 
182
 
-
 
183
// Cleaning the cache
-
 
184
header('Expires: Tue, 01 Jan 2000 00:00:00 GMT');
141
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
185
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
-
 
186
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
-
 
187
header('Cache-Control: post-check=0, pre-check=0', false);
-
 
188
header('Pragma: no-cache');
-
 
189
?>
-
 
190
<!DOCTYPE html>
142
<html>
191
<html>
143
	<head>
192
	<head>
144
		<title>$R_title</title>
193
		<meta charset="UTF-8">
145
		<meta http-equiv=\"Cache-control\" content=\"no-cache\">
-
 
146
		<meta http-equiv=\"Pragma\" content=\"no-cache\">
194
		<title>ALCASAR - <?= $l_title ?></title>
147
		<link rel=\"stylesheet\" href=\"../css/pass.css\" type=\"text/css\">
195
		<link rel="stylesheet" href="../css/pass.css" type="text/css">
148
		<link rel=\"stylesheet\" href=\"../css/style_intercept.css\" type=\"text/css\">
196
		<link rel="stylesheet" href="../css/style_intercept.css" type="text/css">
149
		<link type=\"text/css\" href=\"../css/pwdmeter.css\" media=\"screen\" rel=\"stylesheet\" />
197
		<link rel="stylesheet" href="../css/pwdmeter.css" type="text/css">
150
		<!--[if lt IE 7]>
198
		<!--[if lt IE 7]>
151
			<link type=\"text/css\" href=\"../css/ie.css\" media=\"screen\" rel=\"stylesheet\" />
199
			<link rel="stylesheet" href="../css/ie.css" type="text/css">
152
		<![endif]-->
200
		<![endif]-->
153
		<script type=\"text/javascript\" src=\"js/pwdmeter.js\" language=\"javascript\"></script>	
-
 
154
		<script type=\"text/javascript\">
201
		<script src="js/pwdmeter.js"></script>
155
			function valoriserDiv5(param){
-
 
156
			document.getElementById(\"box_info\").innerHTML = param.innerHTML;
-
 
157
			}
-
 
158
		</script>
-
 
159
	</head>
202
	</head>
160
	<body onload=\"valoriserDiv5(text_conn);\">
203
	<body>
161
				<div id=\"cadre_titre\" class=\"titre_controle\">
204
		<div id="cadre_titre" class="titre_controle">
162
					<p id=\"acces_controle\" class=\"titre_controle\">$R_title</p>			
205
			<p id="acces_controle" class="titre_controle"><?= $l_title ?></p>
163
					<div id=\"boite_logo\">
-
 
164
						<img src=\"/images/organisme.png\">
206
			<div id="boite_logo"><img src="/images/organisme.png"></div>
165
					</div>
-
 
166
				</div>
207
		</div>
167
				<div id=\"contenu_acces\">
208
		<div id="contenu_acces">
168
					<form name=\"master\" action=\"$current_page\" method=\"post\">
209
			<form name="master" action="<?= $current_page ?>" method="post">
169
					<input type=hidden name=action value=checkpass>
210
				<input type="hidden" name="action" value="checkpass">
170
						<table id=\"champs_pass\" border=\"0\">
211
				<table id="champs_pass" border="0">
171
							<tr>
212
					<tr>
172
								<td class=\"first_item\">$R_form_l1</td>
213
						<td class="first_item"><?= $l_form_l1 ?></td>
173
								<td><input type=\"text\" name=\"login\" value=\"\" label=\"test\"></td>
214
						<td><input type="text" name="login" value="" label="test"></td>
174
							</tr>	
215
					</tr>	
175
							<tr>
216
					<tr>
176
								<td class=\"first_item\">$R_form_l2</td>
217
						<td class="first_item"><?= $l_form_l2 ?></td>
177
								<td><input type=\"password\" name=\"passwd\" value=\"\"></td>
218
						<td><input type="password" name="passwd" value=""></td>
178
							</tr>
219
					</tr>
179
							<tr>
220
					<tr>
180
								<td class=\"first_item\">$R_form_l3</td>
221
						<td class="first_item"><?= $l_form_l3 ?></td>
181
								<td>
222
						<td>
182
									<input type=\"password\" name=\"newpasswd\" id=\"passwordPwd\" value=\"\" autocomplete=\"off\" onkeyup=\"chkPass(this.value);\" />
223
							<input type="password" name="newpasswd" id="passwordPwd" value="" autocomplete="off" onkeyup="chkPass(this.value);" />
183
									<input type=\"text\" id=\"passwordTxt\" name=\"passwordTxt\" autocomplete=\"off\" onkeyup=\"chkPass(this.value);\" class=\"hide\" />
224
							<input type="text" id="passwordTxt" name="passwordTxt" autocomplete="off" onkeyup="chkPass(this.value);" class="hide" />
184
								</td>
225
						</td>
185
							</tr>
226
					</tr>
186
							<tr>
227
					<tr>
187
								<td class=\"first_item\">$R_eval_pass</td>
228
						<td class="first_item"><?= $l_eval_pass ?></td>
188
								<td>
229
						<td>
189
									<div id=\"scorebarBorder\">
230
							<div id="scorebarBorder">
190
										<div id=\"score\">0%</div>
231
								<div id="score">0%</div>
191
										<div id=\"scorebar\">&nbsp;</div>
232
								<div id="scorebar">&nbsp;</div>
192
									</div>
233
							</div>
193
									<div id=\"complexity\"></div>
234
							<div id="complexity"></div>
194
								</td>
235
						</td>
195
							</tr>
236
					</tr>
196
							<tr>
237
					<tr>
197
								<td colspan=\"2\" id=\"lien_pass\">$R_passwordmeter</td>
238
						<td colspan="2" id="lien_pass"><?= $l_passwordmeter ?></td>
198
							</tr>
239
					</tr>
199
							<tr>
240
					<tr>
200
								<td class=\"first_item\">$R_form_l4</td>
241
						<td class="first_item"><?= $l_form_l4 ?></td>
201
								<td><input type=\"password\" name=\"newpasswd2\" value=\"\"></td>
242
						<td><input type="password" name="newpasswd2" value=""></td>
202
							</tr>
243
					</tr>
203
							<tr>
244
					<tr>
204
								<td colspan=\"2\" id=\"lien_pass\">
245
						<td colspan="2" id="lien_pass">
205
								<input type=\"submit\" class=\"btn_form\" id=\"btn_pass\" value=\"$R_form_button_valid\">
246
							<input type="submit" class="btn_form" id="btn_pass" value="<?= $l_form_button_valid ?>">
206
								<input type=\"button\" class=\"btn_form\" id=\"btn_retour\" value=\"$R_form_button_retour\" onclick=\"location.replace('$homepage');\">
247
							<input type="button" class="btn_form" id="btn_retour" value="<?= $l_form_button_retour ?>" onclick="window.location = '<?= $homepage ?>';">
207
								</td>
248
						</td>
208
							</tr>
249
					</tr>
-
 
250
					<?php if (isset($changePasswordMessage)): ?>
-
 
251
						<tr>
-
 
252
							<td colspan="2"><?= $changePasswordMessage ?></td>
-
 
253
						</tr>
-
 
254
					<?php endif; ?>
209
						</table>
255
				</table>
-
 
256
			</form>
210
				</div>
257
		</div>
211
			</div>
-
 
212
			<div id=\"info_pass\">
258
		<div id="info_pass">
213
				<table id=\"tablePwdStatus\" cellpadding=\"5\" cellspacing=\"1\" border=\"0\">
259
			<table id="tablePwdStatus" cellpadding="5" cellspacing="1" border="0">
214
					<tr>
260
				<tr>
215
						<th colspan=\"2\">Additions</th>
261
					<th colspan="2">Additions</th>
216
						<th class=\"txtCenter\">Type</th>
262
					<th class="txtCenter">Type</th>
217
						<th class=\"txtCenter\">Rate</th>
263
					<th class="txtCenter">Rate</th>
218
						<th class=\"txtCenter\">Count</th>
264
					<th class="txtCenter">Count</th>
219
						<th class=\"txtCenter\">Bonus</th>
265
					<th class="txtCenter">Bonus</th>
220
					</tr>
266
				</tr>
221
					<tr>
267
				<tr>
222
						<td width=\"1%\"><div id=\"div_nLength\" class=\"fail\">&nbsp;</div></td>
268
					<td width="1%"><div id="div_nLength" class="fail">&nbsp;</div></td>
223
						<td width=\"94%\">Number of Characters</td>
269
					<td width="94%">Number of Characters</td>
224
						<td width=\"1%\" class=\"txtCenter\">Flat</td>
270
					<td width="1%" class="txtCenter">Flat</td>
225
						<td width=\"1%\" class=\"txtCenter italic\">+(n*4)</td>
271
					<td width="1%" class="txtCenter italic">+(n*4)</td>
226
						<td width=\"1%\"><div id=\"nLength\" class=\"box\">&nbsp;</div></td>
272
					<td width="1%"><div id="nLength" class="box">&nbsp;</div></td>
227
						<td width=\"1%\"><div id=\"nLengthBonus\" class=\"boxPlus\">&nbsp;</div></td>
273
					<td width="1%"><div id="nLengthBonus" class="boxPlus">&nbsp;</div></td>
228
					</tr>	
274
				</tr>
229
					<tr>
275
				<tr>
230
						<td><div id=\"div_nAlphaUC\" class=\"fail\">&nbsp;</div></td>
276
					<td><div id="div_nAlphaUC" class="fail">&nbsp;</div></td>
231
						<td>Uppercase Letters</td>
277
					<td>Uppercase Letters</td>
232
						<td class=\"txtCenter\">Cond/Incr</td>
278
					<td class="txtCenter">Cond/Incr</td>
233
						<td nowrap=\"nowrap\" class=\"txtCenter italic\">+((len-n)*2)</td>
279
					<td nowrap="nowrap" class="txtCenter italic">+((len-n)*2)</td>
234
					   <td><div id=\"nAlphaUC\" class=\"box\">&nbsp;</div></td>
280
					<td><div id="nAlphaUC" class="box">&nbsp;</div></td>
235
						<td><div id=\"nAlphaUCBonus\" class=\"boxPlus\">&nbsp;</div></td>
281
					<td><div id="nAlphaUCBonus" class="boxPlus">&nbsp;</div></td>
236
					</tr>	
282
				</tr>	
237
					<tr>
283
				<tr>
238
						<td><div id=\"div_nAlphaLC\" class=\"fail\">&nbsp;</div></td>
284
					<td><div id="div_nAlphaLC" class="fail">&nbsp;</div></td>
239
						<td>Lowercase Letters</td>
285
					<td>Lowercase Letters</td>
240
						<td class=\"txtCenter\">Cond/Incr</td>
286
					<td class="txtCenter">Cond/Incr</td>
241
						<td class=\"txtCenter italic\">+((len-n)*2)</td>
287
					<td class="txtCenter italic">+((len-n)*2)</td>
242
						<td><div id=\"nAlphaLC\" class=\"box\">&nbsp;</div></td>
288
					<td><div id="nAlphaLC" class="box">&nbsp;</div></td>
243
						<td><div id=\"nAlphaLCBonus\" class=\"boxPlus\">&nbsp;</div></td>
289
					<td><div id="nAlphaLCBonus" class="boxPlus">&nbsp;</div></td>
244
					</tr>
290
				</tr>
245
					<tr>
291
				<tr>
246
						<td><div id=\"div_nNumber\" class=\"fail\">&nbsp;</div></td>
292
					<td><div id="div_nNumber" class="fail">&nbsp;</div></td>
247
						<td>Numbers</td>
293
					<td>Numbers</td>
248
						<td class=\"txtCenter\">Cond</td>
294
					<td class="txtCenter">Cond</td>
249
						<td class=\"txtCenter italic\">+(n*4)</td>
295
					<td class="txtCenter italic">+(n*4)</td>
250
						<td><div id=\"nNumber\" class=\"box\">&nbsp;</div></td>
296
					<td><div id="nNumber" class="box">&nbsp;</div></td>
251
						<td><div id=\"nNumberBonus\" class=\"boxPlus\">&nbsp;</div></td>
297
					<td><div id="nNumberBonus" class="boxPlus">&nbsp;</div></td>
252
				   </tr>
298
				</tr>
253
					<tr>
299
				<tr>
254
						<td><div id=\"div_nSymbol\" class=\"fail\">&nbsp;</div></td>
300
					<td><div id="div_nSymbol" class="fail">&nbsp;</div></td>
255
						<td>Symbols</td>
301
					<td>Symbols</td>
256
						<td class=\"txtCenter\">Flat</td>
302
					<td class="txtCenter">Flat</td>
257
						<td class=\"txtCenter italic\">+(n*6)</td>
303
					<td class="txtCenter italic">+(n*6)</td>
258
						<td><div id=\"nSymbol\" class=\"box\">&nbsp;</div></td>
304
					<td><div id="nSymbol" class="box">&nbsp;</div></td>
259
						<td><div id=\"nSymbolBonus\" class=\"boxPlus\">&nbsp;</div></td>
305
					<td><div id="nSymbolBonus" class="boxPlus">&nbsp;</div></td>
260
				   </tr>
306
				</tr>
261
					<tr>
307
				<tr>
262
						<td><div id=\"div_nMidChar\" class=\"fail\">&nbsp;</div></td>
308
					<td><div id="div_nMidChar" class="fail">&nbsp;</div></td>
263
						<td>Middle Numbers or Symbols</td>
309
					<td>Middle Numbers or Symbols</td>
264
						<td class=\"txtCenter\">Flat</td>
310
					<td class="txtCenter">Flat</td>
265
						<td class=\"txtCenter italic\">+(n*2)</td>
311
					<td class="txtCenter italic">+(n*2)</td>
266
						<td><div id=\"nMidChar\" class=\"box\">&nbsp;</div></td>
312
					<td><div id="nMidChar" class="box">&nbsp;</div></td>
267
						<td><div id=\"nMidCharBonus\" class=\"boxPlus\">&nbsp;</div></td>
313
					<td><div id="nMidCharBonus" class="boxPlus">&nbsp;</div></td>
268
				   </tr>
314
				</tr>
269
					<tr>
315
				<tr>
270
						<td><div id=\"div_nRequirements\" class=\"fail\">&nbsp;</div></td>
316
					<td><div id="div_nRequirements" class="fail">&nbsp;</div></td>
271
						<td>Requirements</td>
317
					<td>Requirements</td>
272
						<td class=\"txtCenter\">Flat</td>
318
					<td class="txtCenter">Flat</td>
273
						<td class=\"txtCenter italic\">+(n*2)</td>
319
					<td class="txtCenter italic">+(n*2)</td>
274
						<td><div id=\"nRequirements\" class=\"box\">&nbsp;</div></td>
320
					<td><div id="nRequirements" class="box">&nbsp;</div></td>
275
						<td><div id=\"nRequirementsBonus\" class=\"boxPlus\">&nbsp;</div></td>
321
					<td><div id="nRequirementsBonus" class="boxPlus">&nbsp;</div></td>
276
				   </tr>
322
				</tr>
277
					<tr>
323
				<tr>
278
						<th colspan=\"6\">Deductions</th>
324
					<th colspan="6">Deductions</th>
279
					</tr>
325
				</tr>
280
					<tr>
326
				<tr>
281
						<td width=\"1%\"><div id=\"div_nAlphasOnly\" class=\"pass\">&nbsp;</div></td>
327
					<td width="1%"><div id="div_nAlphasOnly" class="pass">&nbsp;</div></td>
282
						<td width=\"94%\">Letters Only</td>
328
					<td width="94%">Letters Only</td>
283
						<td width=\"1%\" class=\"txtCenter\">Flat</td>
329
					<td width="1%" class="txtCenter">Flat</td>
284
						<td width=\"1%\" class=\"txtCenter italic\">-n</td>
330
					<td width="1%" class="txtCenter italic">-n</td>
285
						<td width=\"1%\"><div id=\"nAlphasOnly\" class=\"box\">&nbsp;</div></td>
331
					<td width="1%"><div id="nAlphasOnly" class="box">&nbsp;</div></td>
286
						<td width=\"1%\"><div id=\"nAlphasOnlyBonus\" class=\"boxMinus\">&nbsp;</div></td>
332
					<td width="1%"><div id="nAlphasOnlyBonus" class="boxMinus">&nbsp;</div></td>
287
					</tr>	
333
				</tr>	
288
					<tr>
334
				<tr>
289
						<td><div id=\"div_nNumbersOnly\" class=\"pass\">&nbsp;</div></td>
335
					<td><div id="div_nNumbersOnly" class="pass">&nbsp;</div></td>
290
						<td>Numbers Only</td>
336
					<td>Numbers Only</td>
291
						<td class=\"txtCenter\">Flat</td>
337
					<td class="txtCenter">Flat</td>
292
						<td class=\"txtCenter italic\">-n</td>
338
					<td class="txtCenter italic">-n</td>
293
						<td><div id=\"nNumbersOnly\" class=\"box\">&nbsp;</div></td>
339
					<td><div id="nNumbersOnly" class="box">&nbsp;</div></td>
294
						<td><div id=\"nNumbersOnlyBonus\" class=\"boxMinus\">&nbsp;</div></td>
340
					<td><div id="nNumbersOnlyBonus" class="boxMinus">&nbsp;</div></td>
295
					</tr>	
341
				</tr>	
296
					<tr>
342
				<tr>
297
						<td><div id=\"div_nRepChar\" class=\"pass\">&nbsp;</div></td>
343
					<td><div id="div_nRepChar" class="pass">&nbsp;</div></td>
298
						<td>Repeat Characters (Case Insensitive)</td>
344
					<td>Repeat Characters (Case Insensitive)</td>
299
						<td class=\"txtCenter\">Comp</td>
345
					<td class="txtCenter">Comp</td>
300
						<td nowrap=\"nowrap\" class=\"txtCenter italic\"> - </td>
346
					<td nowrap="nowrap" class="txtCenter italic"> - </td>
301
						<td><div id=\"nRepChar\" class=\"box\">&nbsp;</div></td>
347
					<td><div id="nRepChar" class="box">&nbsp;</div></td>
302
						<td><div id=\"nRepCharBonus\" class=\"boxMinus\">&nbsp;</div></td>
348
					<td><div id="nRepCharBonus" class="boxMinus">&nbsp;</div></td>
303
					</tr>	
349
				</tr>	
304
					<tr>
350
				<tr>
305
						<td><div id=\"div_nConsecAlphaUC\" class=\"pass\">&nbsp;</div></td>
351
					<td><div id="div_nConsecAlphaUC" class="pass">&nbsp;</div></td>
306
						<td>Consecutive Uppercase Letters</td>
352
					<td>Consecutive Uppercase Letters</td>
307
						<td class=\"txtCenter\">Flat</td>
353
					<td class="txtCenter">Flat</td>
308
						<td class=\"txtCenter italic\">-(n*2)</td>
354
					<td class="txtCenter italic">-(n*2)</td>
309
						<td><div id=\"nConsecAlphaUC\" class=\"box\">&nbsp;</div></td>
355
					<td><div id="nConsecAlphaUC" class="box">&nbsp;</div></td>
310
						<td><div id=\"nConsecAlphaUCBonus\" class=\"boxMinus\">&nbsp;</div></td>
356
					<td><div id="nConsecAlphaUCBonus" class="boxMinus">&nbsp;</div></td>
311
					</tr>	
357
				</tr>	
312
					<tr>
358
				<tr>
313
						<td><div id=\"div_nConsecAlphaLC\" class=\"pass\">&nbsp;</div></td>
359
					<td><div id="div_nConsecAlphaLC" class="pass">&nbsp;</div></td>
314
						<td>Consecutive Lowercase Letters</td>
360
					<td>Consecutive Lowercase Letters</td>
315
						<td class=\"txtCenter\">Flat</td>
361
					<td class="txtCenter">Flat</td>
316
						<td class=\"txtCenter italic\">-(n*2)</td>
362
					<td class="txtCenter italic">-(n*2)</td>
317
						<td><div id=\"nConsecAlphaLC\" class=\"box\">&nbsp;</div></td>
363
					<td><div id="nConsecAlphaLC" class="box">&nbsp;</div></td>
318
						<td><div id=\"nConsecAlphaLCBonus\" class=\"boxMinus\">&nbsp;</div></td>
364
					<td><div id="nConsecAlphaLCBonus" class="boxMinus">&nbsp;</div></td>
319
					</tr>	
365
				</tr>	
320
					<tr>
366
				<tr>
321
						<td><div id=\"div_nConsecNumber\" class=\"pass\">&nbsp;</div></td>
367
					<td><div id="div_nConsecNumber" class="pass">&nbsp;</div></td>
322
						<td>Consecutive Numbers</td>
368
					<td>Consecutive Numbers</td>
323
						<td class=\"txtCenter\">Flat</td>
369
					<td class="txtCenter">Flat</td>
324
						<td class=\"txtCenter italic\">-(n*2)</td>
370
					<td class="txtCenter italic">-(n*2)</td>
325
						<td><div id=\"nConsecNumber\" class=\"box\">&nbsp;</div></td>
371
					<td><div id="nConsecNumber" class="box">&nbsp;</div></td>
326
						<td><div id=\"nConsecNumberBonus\" class=\"boxMinus\">&nbsp;</div></td>
372
					<td><div id="nConsecNumberBonus" class="boxMinus">&nbsp;</div></td>
327
					</tr>	
373
				</tr>	
328
					<tr>
374
				<tr>
329
						<td><div id=\"div_nSeqAlpha\" class=\"pass\">&nbsp;</div></td>
375
					<td><div id="div_nSeqAlpha" class="pass">&nbsp;</div></td>
330
						<td>Sequential Letters (3+)</td>
376
					<td>Sequential Letters (3+)</td>
331
						<td class=\"txtCenter\">Flat</td>
377
					<td class="txtCenter">Flat</td>
332
						<td class=\"txtCenter italic\">-(n*3)</td>
378
					<td class="txtCenter italic">-(n*3)</td>
333
						<td><div id=\"nSeqAlpha\" class=\"box\">&nbsp;</div></td>
379
					<td><div id="nSeqAlpha" class="box">&nbsp;</div></td>
334
						<td><div id=\"nSeqAlphaBonus\" class=\"boxMinus\">&nbsp;</div></td>
380
					<td><div id="nSeqAlphaBonus" class="boxMinus">&nbsp;</div></td>
335
					</tr>	
381
				</tr>	
336
					<tr>
382
				<tr>
337
						<td><div id=\"div_nSeqNumber\" class=\"pass\">&nbsp;</div></td>
383
					<td><div id="div_nSeqNumber" class="pass">&nbsp;</div></td>
338
						<td>Sequential Numbers (3+)</td>
384
					<td>Sequential Numbers (3+)</td>
339
						<td class=\"txtCenter\">Flat</td>
385
					<td class="txtCenter">Flat</td>
340
						<td class=\"txtCenter italic\">-(n*3)</td>
386
					<td class="txtCenter italic">-(n*3)</td>
341
						<td><div id=\"nSeqNumber\" class=\"box\">&nbsp;</div></td>
387
					<td><div id="nSeqNumber" class="box">&nbsp;</div></td>
342
						<td><div id=\"nSeqNumberBonus\" class=\"boxMinus\">&nbsp;</div></td>
388
					<td><div id="nSeqNumberBonus" class="boxMinus">&nbsp;</div></td>
343
					</tr>	
389
				</tr>	
344
					<tr>
390
				<tr>
345
						<td><div id=\"div_nSeqSymbol\" class=\"pass\">&nbsp;</div></td>
391
					<td><div id="div_nSeqSymbol" class="pass">&nbsp;</div></td>
346
						<td>Sequential Symbols (3+)</td>
392
					<td>Sequential Symbols (3+)</td>
347
						<td class=\"txtCenter\">Flat</td>
393
					<td class="txtCenter">Flat</td>
348
						<td class=\"txtCenter italic\">-(n*3)</td>
394
					<td class="txtCenter italic">-(n*3)</td>
349
						<td><div id=\"nSeqSymbol\" class=\"box\">&nbsp;</div></td>
395
					<td><div id="nSeqSymbol" class="box">&nbsp;</div></td>
350
						<td><div id=\"nSeqSymbolBonus\" class=\"boxMinus\">&nbsp;</div></td>
396
					<td><div id="nSeqSymbolBonus" class="boxMinus">&nbsp;</div></td>
351
					</tr>	
397
				</tr>	
352
					<tr>
398
				<tr>
353
						<th colspan=\"6\">Legend</th>
399
					<th colspan="6">Legend</th>
354
					</tr>
400
				</tr>
355
					<tr>
401
				<tr>
356
						<td colspan=\"6\">
402
					<td colspan="6">
357
							<ul id=\"listLegend\">
403
						<ul id="listLegend">
358
								<li><div class=\"exceed imgLegend\">&nbsp;</div> <span class=\"bold\">Exceptional:</span> Exceeds minimum standards. Additional bonuses are applied.</li>
404
							<li><div class="exceed imgLegend">&nbsp;</div><span class="bold">Exceptional:</span> Exceeds minimum standards. Additional bonuses are applied.</li>
359
								<li><div class=\"pass imgLegend\">&nbsp;</div> <span class=\"bold\">Sufficient:</span> Meets minimum standards. Additional bonuses are applied.</li>
405
							<li><div class="pass imgLegend">&nbsp;</div><span class="bold">Sufficient:</span> Meets minimum standards. Additional bonuses are applied.</li>
360
								<li><div class=\"warn imgLegend\">&nbsp;</div> <span class=\"bold\">Warning:</span> Advisory against employing bad practices. Overall score is reduced.</li>
406
							<li><div class="warn imgLegend">&nbsp;</div><span class="bold">Warning:</span> Advisory against employing bad practices. Overall score is reduced.</li>
361
								<li><div class=\"fail imgLegend\">&nbsp;</div> <span class=\"bold\">Failure:</span> Does not meet the minimum standards. Overall score is reduced.</li>
407
							<li><div class="fail imgLegend">&nbsp;</div><span class="bold">Failure:</span> Does not meet the minimum standards. Overall score is reduced.</li>
362
							</ul>
408
						</ul>
363
						</td>
409
					</td>
364
					</tr>
410
				</tr>
365
				</table>
411
			</table>
366
			   <table id=\"tablePwdNotes\" cellpadding=\"5\" cellspacing=\"1\" border=\"0\">
412
		   	<table id="tablePwdNotes" cellpadding="5" cellspacing="1" border="0">
367
					<tr>
413
				<tr>
368
						<th>Quick Footnotes</th>
414
					<th>Quick Footnotes</th>
369
					</tr>
415
				</tr>
370
					<tr>
416
				<tr>
371
						<td>
417
					<td>
372
							&bull; <strong>Flat:</strong> Rates that add/remove in non-changing increments.<br />
418
						&bull; <strong>Flat:</strong> Rates that add/remove in non-changing increments.<br>
373
							&bull; <strong>Incr:</strong> Rates that add/remove in adjusting increments.<br />
419
						&bull; <strong>Incr:</strong> Rates that add/remove in adjusting increments.<br>
374
							&bull; <strong>Cond:</strong> Rates that add/remove depending on additional factors.<br />
420
						&bull; <strong>Cond:</strong> Rates that add/remove depending on additional factors.<br>
375
							&bull; <strong>Comp:</strong> Rates that are too complex to summarize. See source code for details.<br />
421
						&bull; <strong>Comp:</strong> Rates that are too complex to summarize. See source code for details.<br>
376
							&bull; <strong>n:</strong> Refers to the total number of occurrences.<br />
422
						&bull; <strong>n:</strong> Refers to the total number of occurrences.<br>
377
							&bull; <strong>len:</strong> Refers to the total password length.<br />
423
						&bull; <strong>len:</strong> Refers to the total password length.<br>
378
							&bull; Additional bonus scores are given for increased character variety.<br />
424
						&bull; Additional bonus scores are given for increased character variety.<br>
379
							&bull; Final score is a cumulative result of all bonuses minus deductions.<br />
425
						&bull; Final score is a cumulative result of all bonuses minus deductions.<br>
380
							&bull; Final score is capped with a minimum of 0 and a maximum of 100.<br />
426
						&bull; Final score is capped with a minimum of 0 and a maximum of 100.<br>
381
							&bull; Score and Complexity ratings are not conditional on meeting minimum requirements.<br />
427
						&bull; Score and Complexity ratings are not conditional on meeting minimum requirements.<br>
382
						</td>
428
					</td>
383
					</tr>
429
				</tr>
384
				</table>
430
			</table>
385
			</div>
431
		</div>
386
";
-
 
387
if (isset($action)){
-
 
388
	if ($action == 'checkpass'){
-
 
389
		if (is_file("../acc/manager/lib/sql/drivers/$config[sql_type]/functions.php"))
-
 
390
			include_once("../acc/manager/lib/sql/drivers/$config[sql_type]/functions.php");
-
 
391
		else{
-
 
392
			echo "<b>Could not include SQL library</b><br>\n";
-
 
393
			exit();
-
 
394
		}
-
 
395
	$link = @da_sql_pconnect($config);
-
 
396
		if ($link){
-
 
397
			$res = @da_sql_query($link,$config,
-
 
398
				"SELECT attribute,value FROM $config[sql_check_table] WHERE username = '$login'
-
 
399
				AND attribute = '$config[sql_password_attribute]';");
-
 
400
			if ($res){
-
 
401
				$row = @da_sql_fetch_array($res,$config);
-
 
402
				if (is_file("crypt/$config[general_encryption_method].php")){
-
 
403
					include("crypt/$config[general_encryption_method].php");
-
 
404
					$enc_passwd = $row['value'];
-
 
405
					$passwd = da_encrypt($passwd,$enc_passwd);
-
 
406
					$newpasswd = da_encrypt($newpasswd,$enc_passwd);
-
 
407
					$newpasswd2 = da_encrypt($newpasswd2,$enc_passwd);
-
 
408
					if (($passwd == $enc_passwd) and ($newpasswd == $newpasswd2)){
-
 
409
						$msg = '<font color=blue><b>'.$R_form_result1.'</b></font>';
-
 
410
						$res2 = @da_sql_query($link,$config,
-
 
411
							"UPDATE $config[sql_check_table] set value='$newpasswd' WHERE username = '$login'
-
 
412
							AND attribute = '$config[sql_password_attribute]';");}
-
 
413
					else
-
 
414
						$msg = '<font color=red><b>'.$R_form_result2.'</b></font>';
-
 
415
				}
-
 
416
				else
-
 
417
					echo "<b>Could not open encryption library file</b><br>\n";
-
 
418
			}
-
 
419
		}
-
 
420
		echo "<span align=center>$msg</span>\n";
-
 
421
	}
-
 
422
}
-
 
423
?>
-
 
424
</body>
432
	</body>
425
</html>
433
</html>
426
 
-