I've seen that lynx sends the user name when doing ANONYMOUS ftp gets.
I see a lot of problems:
- Sending the user name if the user doesn't know that it's sent doesn't protect the
user state of ANONYMOUS
- Spyware is not a good idea, most users don't like it.
- Sending the user name helps SPAM instead of stopping it. Many ftp sites use this
information to send you unsolicited email.
- Sending the user name doesn't help ftp sites to know who the cracker is, crackers
are not stupid to send their email address.
- Sending the user name can be used to discriminate the user.
By all of these reasons I argue that lynx to don't
send the user email by default.
Some time ago two very important ftp clients wget and
lftp stopped sending the user name as password based on
my input.
As more and more ftp clients are moving to this
anonymous@ password (for example the kde kio ftp, qt3,
gnome-xml, perl's Net::FTP, python's ftplib.py)
I recommend you to apply the patch.
I send you the bugfix.
--- lynx/WWW/Library/Implementation/HTFTP.c~ Sun Jun 3 19:58:00 2001
+++ lynx/WWW/Library/Implementation/HTFTP.c Thu Feb 14 11:46:51 2002
@@ -129,7 +129,6 @@
extern BOOLEAN socks_flag;
extern unsigned long socks_bind_remoteAddr;
#endif /* SOCKS */
-extern char *personal_mail_address;
/* Module-Wide Variables
** ---------------------
@@ -854,44 +853,16 @@
HTSprintf0(&command, "PASS %s%c%c", password, CR, LF);
} else {
/*
- * Create and send a mail address as the password. - FM
+ * Send an anonymous ftp password. - FM
+ * If there is no anonymous ftp password specified
+ * then we'll just use anonymous@
+ * We don't send any other thing because:
+ * - We want to remain anonymous
+ * - We want to stop SPAM
+ * - We don't want to let ftp sites to discriminate by the user,
+ * host or country.
*/
- char *user = NULL;
- CONST char *host = NULL;
- char * cp;
-
- if (personal_mail_address && *personal_mail_address) {
- /*
- * We have a non-zero length personal
- * mail address, so use that. - FM
- */
- StrAllocCopy(user, personal_mail_address);
- if ((cp=strchr(user, '@')) != NULL) {
- *cp++ = '\0';
- host = cp;
- } else {
- host = HTHostName();
- }
- } else {
- /*
- * Use an environment variable and the host global. - FM
- */
- if ((cp=getenv("USER")) != NULL)
- StrAllocCopy(user, cp);
- else
- StrAllocCopy(user, "WWWuser");
- host = HTHostName();
- }
-
- /*
- * If host is not fully qualified, suppress it
- * as ftp.uu.net prefers a blank to a bad name
- */
- if (!(host) || strchr(host, '.') == NULL)
- host = "";
-
- HTSprintf0(&command, "PASS %s@%s%c%c", user, host, CR, LF);
- FREE(user);
+ HTSprintf0(&command, "PASS anonymous@%c%c", CR, LF);
}
status = response(command);
FREE(command);