Solved

Send user name and pw to server

Posted on 1998-12-06
12
164 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
  • 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
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
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

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Reading variable length EBCDIC in SAS 9 108
Powershell / new-object PSObject rows 2 329
copy-item script help 15 74
How does Redux fit into React? 3 79
If you get a (Blue Screen of Death), your system writes a small file called a minidump. Your first step is to make certain your computer is setup to record memory dumps. Right click My Computer, choose properties. Click on the advanced tab, an…
Batch, VBS, and scripts in general are incredibly useful for repetitive tasks.  Some tasks can take a while to complete and it can be annoying to check back only to discover that your script finished 5 minutes ago.  Some scripts may complete nearly …
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…
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

815 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

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now