Fossil SCM

Make it harder to misconfigure the user accounts in a way that might give people greater access than intended.

drh 2009-09-15 18:44 trunk
Commit bbb8ae7ebf745fa28b7a280e70bc60e2c2670cab
3 files changed +1 -1 +6 -2 +1
+1 -1
--- src/db.c
+++ src/db.c
@@ -932,11 +932,11 @@
932932
"VALUES(%Q,lower(hex(randomblob(3))),'s','')", zUser
933933
);
934934
if( !setupUserOnly ){
935935
db_multi_exec(
936936
"INSERT INTO user(login,pw,cap,info)"
937
- " VALUES('anonymous','anonymous','ghmncz','Anon');"
937
+ " VALUES('anonymous',hex(randomblob(8)),'ghmncz','Anon');"
938938
"INSERT INTO user(login,pw,cap,info)"
939939
" VALUES('nobody','','jor','Nobody');"
940940
"INSERT INTO user(login,pw,cap,info)"
941941
" VALUES('developer','','dei','Dev');"
942942
"INSERT INTO user(login,pw,cap,info)"
943943
--- src/db.c
+++ src/db.c
@@ -932,11 +932,11 @@
932 "VALUES(%Q,lower(hex(randomblob(3))),'s','')", zUser
933 );
934 if( !setupUserOnly ){
935 db_multi_exec(
936 "INSERT INTO user(login,pw,cap,info)"
937 " VALUES('anonymous','anonymous','ghmncz','Anon');"
938 "INSERT INTO user(login,pw,cap,info)"
939 " VALUES('nobody','','jor','Nobody');"
940 "INSERT INTO user(login,pw,cap,info)"
941 " VALUES('developer','','dei','Dev');"
942 "INSERT INTO user(login,pw,cap,info)"
943
--- src/db.c
+++ src/db.c
@@ -932,11 +932,11 @@
932 "VALUES(%Q,lower(hex(randomblob(3))),'s','')", zUser
933 );
934 if( !setupUserOnly ){
935 db_multi_exec(
936 "INSERT INTO user(login,pw,cap,info)"
937 " VALUES('anonymous',hex(randomblob(8)),'ghmncz','Anon');"
938 "INSERT INTO user(login,pw,cap,info)"
939 " VALUES('nobody','','jor','Nobody');"
940 "INSERT INTO user(login,pw,cap,info)"
941 " VALUES('developer','','dei','Dev');"
942 "INSERT INTO user(login,pw,cap,info)"
943
+6 -2
--- src/login.c
+++ src/login.c
@@ -179,12 +179,16 @@
179179
redirect_to_g();
180180
}
181181
if( zUsername!=0 && zPasswd!=0 && zPasswd[0]!=0 ){
182182
uid = db_int(0,
183183
"SELECT uid FROM user"
184
- " WHERE login=%Q AND pw=%Q", zUsername, zPasswd);
185
- if( uid<=0 || strcmp(zUsername,"nobody")==0 ){
184
+ " WHERE login=%Q"
185
+ " AND login NOT IN ('anonymous','nobody','developer','reader')"
186
+ " AND pw=%Q",
187
+ zUsername, zPasswd
188
+ );
189
+ if( uid<=0 ){
186190
sleep(1);
187191
zErrMsg =
188192
@ <p><font color="red">
189193
@ You entered an unknown user or an incorrect password.
190194
@ </font></p>
191195
--- src/login.c
+++ src/login.c
@@ -179,12 +179,16 @@
179 redirect_to_g();
180 }
181 if( zUsername!=0 && zPasswd!=0 && zPasswd[0]!=0 ){
182 uid = db_int(0,
183 "SELECT uid FROM user"
184 " WHERE login=%Q AND pw=%Q", zUsername, zPasswd);
185 if( uid<=0 || strcmp(zUsername,"nobody")==0 ){
 
 
 
 
186 sleep(1);
187 zErrMsg =
188 @ <p><font color="red">
189 @ You entered an unknown user or an incorrect password.
190 @ </font></p>
191
--- src/login.c
+++ src/login.c
@@ -179,12 +179,16 @@
179 redirect_to_g();
180 }
181 if( zUsername!=0 && zPasswd!=0 && zPasswd[0]!=0 ){
182 uid = db_int(0,
183 "SELECT uid FROM user"
184 " WHERE login=%Q"
185 " AND login NOT IN ('anonymous','nobody','developer','reader')"
186 " AND pw=%Q",
187 zUsername, zPasswd
188 );
189 if( uid<=0 ){
190 sleep(1);
191 zErrMsg =
192 @ <p><font color="red">
193 @ You entered an unknown user or an incorrect password.
194 @ </font></p>
195
+1
--- src/xfer.c
+++ src/xfer.c
@@ -387,10 +387,11 @@
387387
int rc = -1;
388388
389389
db_prepare(&q,
390390
"SELECT pw, cap, uid FROM user"
391391
" WHERE login=%B"
392
+ " AND login NOT IN ('anonymous','nobody','developer','reader')"
392393
" AND length(pw)>0",
393394
pLogin
394395
);
395396
if( db_step(&q)==SQLITE_ROW ){
396397
Blob pw, combined, hash;
397398
--- src/xfer.c
+++ src/xfer.c
@@ -387,10 +387,11 @@
387 int rc = -1;
388
389 db_prepare(&q,
390 "SELECT pw, cap, uid FROM user"
391 " WHERE login=%B"
 
392 " AND length(pw)>0",
393 pLogin
394 );
395 if( db_step(&q)==SQLITE_ROW ){
396 Blob pw, combined, hash;
397
--- src/xfer.c
+++ src/xfer.c
@@ -387,10 +387,11 @@
387 int rc = -1;
388
389 db_prepare(&q,
390 "SELECT pw, cap, uid FROM user"
391 " WHERE login=%B"
392 " AND login NOT IN ('anonymous','nobody','developer','reader')"
393 " AND length(pw)>0",
394 pLogin
395 );
396 if( db_step(&q)==SQLITE_ROW ){
397 Blob pw, combined, hash;
398

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button