Solved

Send user name and pw to server

Posted on 1998-12-06
12
169 Views
Last Modified: 2013-12-25
Hello,
I'm writing a perl script that should save an EE question to my hard disk (for practice. not sure I'll ever use it...). Now, I'm opening sockets and downloading and everything. The problem is that I must supply user name and password.

This is what I've tried:
print SOCKET "GET $page 1.0\nAuthorization: martinag password\n\n";

(no, that isn't my real password...:-))

I've tried a few solutions like this but I can't find the format to use when supplying user name and password.
Could you help me?

And by the way, is this secure? Is it just as secure as when I enter the information in my browser or should I do something (like using crypt) to get it more secure?

Martin
0
Comment
Question by:martinag
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 3
  • 2
12 Comments
 
LVL 4

Author Comment

by:martinag
ID: 1830012
I've found something at ftp://ftp.ietf.org/internet-drafts/draft-ietf-http-authentication-03.txt about the Authentication-Info header. I guess I should use it, but I don't understand anything of it...

Martin
0
 
LVL 4

Author Comment

by:martinag
ID: 1830013
Ok, think I've understood a bit now...
I think I should
  print SOCKET "GET $page 1.0\nAuthorization: Basic $info\n\n";
where $info is "martinag:password", base64 encoded.

But how do I base64 encode?

Martin
0
 
LVL 7

Expert Comment

by:jconde
ID: 1830014
Hi, in order to do that you must
do the following:

fprintf (socket, "POST /your/page HTTP/1.0\n");
sprintf (tmp,"Authorization: Basic %s\n\n",base64_encode("username:password"));
fprintf (socket, tmp);

0
The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

 
LVL 4

Author Comment

by:martinag
ID: 1830015
Where do I find base64_encode?

Martin
0
 
LVL 4

Author Comment

by:martinag
ID: 1830016
Your code seems like C. Is it? I'm using Perl...

Anyone know about a base 64 function for Perl?

Martin
0
 
LVL 5

Expert Comment

by:b2pi
ID: 1830017
perldoc MIME::Base64

(part of the LWP package, I think)

0
 
LVL 7

Expert Comment

by:jconde
ID: 1830018
Yes it is b2pi, its part of LWP :)
0
 
LVL 4

Author Comment

by:martinag
ID: 1830019
Ok, I visited www.perl.com and looked up LWP but I didn't find any MIME (not even Base64). Anyone got a URL?

Martin
0
 
LVL 5

Expert Comment

by:b2pi
ID: 1830020
0
 
LVL 4

Author Comment

by:martinag
ID: 1830021
I'll give the points to b2pi.

Great url you gave me. I've always wondered where to download all those modules.
BTW, it was http://perl.com/cgi-bin/cpan_mod?module=MIME::Base64 :-)

Martin
0
 
LVL 5

Accepted Solution

by:
b2pi earned 50 total points
ID: 1830022
Great.  I love the multiplexor (in spite of my poor cut and paste skills) It also has the advantage of trying to find a server that's geographically (or at least network-wise) 'near' you, in order to increase speed.  You can get more info about it at http://language.perl.com/news/cpan-mux.html, and the source is at http://language.perl.com/misc/cpan_module

0
 
LVL 4

Author Comment

by:martinag
ID: 1830023
Thanks!

Martin
0

Featured Post

What Is Transaction Monitoring and who needs it?

Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In threads here at EE, each comment has a unique Identifier (ID). It is easy to get the full path for an ID via the right-click context menu. However, we often want to post a short link within a thread rather than the full link. This article shows a…
The Windows functions GetTickCount and timeGetTime retrieve the number of milliseconds since the system was started. However, the value is stored in a DWORD, which means that it wraps around to zero every 49.7 days. This article shows how to solve t…
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question