🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #7595

webmin & perl

#7595
From: Helio.es
Date: Thu, 30 Jan 2003 15:13
89 lines
4352 bytes
hola a todos,

Estoy usando perl para hacer un m�dulo del webmin bastante chorras.

Solo decir que es sencillo, r�pido y bonito; y a�n m�s cuando vienes de
programar asp donde hacer algo parecido hubiese sido un calvario. Pongo el
c�digo de mi modulito para que, ya que estamos, me lo critiqueis y me digais
qu� modificar�ais. El modulo busca la ip pasada a trav�s de un formulario en
el /var/log/apache/access.log y la vuelca en html:

-------------- index.cgi ---------------------------
#!/usr/bin/perl
# index.cgi
do '../web-lib.pl';
&init_config();
&header("Ejemplo", "", undef, 1, 1);
print "<hr>\n";
print "<form action='result.cgi'>\n";
print "Introdueix la ip: <input type=text name=ip>\n";
print "<input type=submit>\n";
print "</form>\n";
print "<hr>\n";
&footer("/", $text{'index'});
exit;
----------------------------------------------------
-------------- result.cgi ----------------------------
#!/usr/bin/perl
# result.cgi
do '../web-lib.pl';
&init_config();
&ReadParse();
&header("Ejemplo", "", undef, 1, 1);
print "<hr>\n";
print "<form action=\"save.cgi\"><input type=hidden value=\"$in{'ip'}\"
name=ip><input type=submit></form>\n";
print "<div id=curlog>\n";
print `cat /var/log/apache/access.log | grep $in{'ip'} | mawk ' {
printf("<code>%s</code><p>", \$0); } ' `;
print "</div>\n";
print "<hr>\n";
&footer("/", $text{'index'}, "index.cgi", "cerca");
exit;
-----------------------------------------------------------
------------------------ save.cgi --------------------------
#!/usr/bin/perl
# save.cgi
do '../web-lib.pl';
&init_config();
&ReadParse();
&header("Ejemplo", "", undef, 1, 1);
print "<hr>\n";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time - (60
* 60 * 24));
$mon += 1;
$year += 1900;
$nom=sprintf("temp/%04d%02d%02d*.log", $year, $mon, $mday);
system "rm $nom";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$mon += 1;
$year += 1900;
$nom=sprintf("temp/%04d%02d%02d-%s.log", $year, $mon, $mday, $in{'ip'});
print `cat /var/log/apache/access.log | grep $in{'ip'} >$nom `;
print "<script language=javascript>\n";
print "window.onload = function(evt) {\n";
print " window.location = \"$nom\";\n";
print "}\n";
print "</script>\n";
print "<hr>\n";
&footer("/", $text{'index'}, "index.cgi", "cerca");
exit;
----------------------------------------------------

Nota: Ya s� que si en vez de poner una IP ponemos "*; cat /etc/shadow" me
pillan el file y ya pueden putearme las passwords y ya que estamos en el
tema lo que se me ocurrir�a ser�a chequear que lo metido por el usuario solo
sean n�meros y puntos (en el servidor, osea, en el script "result.cgi"),
�c�mo lo har�as vosotros?

Y solo me queda decir una cosa: yo no me met�a en el Perl porque ten�a un
nombre muy "chungo" (antes no me podr�as quitar de mi c, c++ y el java),
pero ahora que estoy meti�ndome en �l le estoy perdiendo todo el miedo que
le ten�a, as� que os animo a aquellos que penseis como yo a que lo proveis.

Y otra cosa m�s (jejeee, no acabar� nunca), esto podr�a ser perfectamente
una p�gina web normalita metida en un apache, pero como meterla en el webmin
es una chorrada m�s, pues lo meto en el webmin y as� no tengo que
preocuparme de qu� usuarios pueden y quienes no acceder al log del apache.

Saludos!
Technical Details
Message-ID: <b1bfed$109ppl$1@ID-165255.news.dfncis.de>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!proxad.net!peer1.news.newnet.co.uk!fu-berlin.de!uni-berlin.de!80-25-0-142.uc.nombres.ttd.ES!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,b4f66c5e0ff1fbd1,start
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-01-30 07:13:19 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!proxad.net!peer1.news.newnet.co.uk!fu-berlin.de!uni-berlin.de!80-25-0-142.uc.nombres.ttd.ES!not-for-mail
From: "Helio.es" <nospam_heltena@hotmail.com>
Newsgroups: es.comp.os.linux.programacion
Subject: webmin & perl
Date: Thu, 30 Jan 2003 16:13:33 +0100
Lines: 91
Message-ID: <b1bfed$109ppl$1@ID-165255.news.dfncis.de>
NNTP-Posting-Host: 80-25-0-142.uc.nombres.ttd.es (80.25.0.142)
X-Trace: fu-berlin.de 1043939598 33875765 80.25.0.142 (16 [165255])
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2720.3000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000