Don't allow access through symlinks leading out of the ftp.server serving directory
parent
a3f1f9d1af
commit
b0840bc355
|
@ -58,7 +58,7 @@ C: <ftp-disconnect> ftp-disconnect
|
||||||
send-response ;
|
send-response ;
|
||||||
|
|
||||||
: serving? ( path -- ? )
|
: serving? ( path -- ? )
|
||||||
normalize-path server get serving-directory>> head? ;
|
resolve-symlinks server get serving-directory>> head? ;
|
||||||
|
|
||||||
: can-serve-directory? ( path -- ? )
|
: can-serve-directory? ( path -- ? )
|
||||||
{ [ exists? ] [ file-info directory? ] [ serving? ] } 1&& ;
|
{ [ exists? ] [ file-info directory? ] [ serving? ] } 1&& ;
|
||||||
|
@ -343,7 +343,7 @@ M: ftp-server handle-client* ( server -- )
|
||||||
: <ftp-server> ( directory port -- server )
|
: <ftp-server> ( directory port -- server )
|
||||||
latin1 ftp-server new-threaded-server
|
latin1 ftp-server new-threaded-server
|
||||||
swap >>insecure
|
swap >>insecure
|
||||||
swap normalize-path >>serving-directory
|
swap resolve-symlinks >>serving-directory
|
||||||
"ftp.server" >>name
|
"ftp.server" >>name
|
||||||
5 minutes >>timeout ;
|
5 minutes >>timeout ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue