Schrift
[thread]12342[/thread]

Shell Befehl Echo (Seite 3)

Leser: 2


<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
FoolAck
 2008-08-12 20:00
#113423 #113423
User since
2008-05-02
69 Artikel
BenutzerIn
[default_avatar]
Es gibt noch ein paar mehr Zeichen als nur ">", bei deinen seltsame Dinge passieren können. Ohne den Inhalt des Passworts können wir hier theoretisch ewig rumraten. Außerdem könntest du mal sagen, welches OS du verwendest. (Ist eine ziemlich wichtige Frage....)

Ein paar Zeichen, die besser nicht vorkommen sollten:
Code: (dl )
$ [ ] { } | & < > ( )

Viele davon haben auch noch eine "Doppelbedeutung". (Wie doppeldeutig)
Sprich "&&" meint was anderes als "&". Dasselbe bei "|", "(" oder "<".

Auf einem unixoiden System sollte auch das hier "aufschlussreich" sein:
Code: (dl )
perl -e 'system(q{echo $0})'
c4
 2008-08-12 20:27
#113427 #113427
User since
2008-08-10
14 Artikel
BenutzerIn
[default_avatar]
@FoolAck -> Debian Sarge 3.1 / Perl 5.8.4

Code: (dl )
1
2
:~# perl -e 'system(q{echo $0})'
:~# sh


Ich weiss schon einige Zeit das diese idee dohf war! Und spätestens weiss ich es seit murphy's post!

Quote
@c4: Ich denke, man sollte diesen Befehl schon deswegen nicht verwenden, weil er ziemlich unsicher aussieht. Wenn in dem Passwort zum Beispiel '>' vorkommt, können gewiss böse Dinge passieren...


Ich habe dieses Problem schon lääääääängst anders gelöst, mit Perl mitteln so das solche bösen dinge nicht mehr vorkommen können.

Also wenn du willst dann schreib doch einfach in das file zum auslesen 'testfile' HALLO rein! Aber das wird auch nicht funktionieren. Weil das Problem nicht an dem String liegt der übergeben wird sondern wo anders. Verstehst Du?

grüSSe
Linuxer
 2008-08-12 20:36
#113428 #113428
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
c4+2008-08-12 18:27:34--
Also wenn du willst dann schreib doch einfach in das file zum auslesen 'testfile' HALLO rein! Aber das wird auch nicht funktionieren. Weil das Problem nicht an dem String liegt der übergeben wird sondern wo anders.


Dann entferne halt endlich den Zeilenumbruch, nachdem Du eine Zeile aus der Datei gelesen hast... ;o)

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use strict;
use warnings;

use CGI   qw();
use Shell qw(echo);

open my $read, '<', '/tmp/text' or die "/tmp/text: $!\n";
# ACHTUNG: Augen auf!
chomp ( my $line = <$read> );
close $read;

echo "$line >> /tmp/output";
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
c4
 2008-08-12 20:43
#113430 #113430
User since
2008-08-10
14 Artikel
BenutzerIn
[default_avatar]
mmhhh ?! wie jetzt... argh!?
MatthiasW
 2008-08-12 20:46
#113431 #113431
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
MatthiasW+2008-08-12 16:42:58--
@c4, eventuell hängt an $UserPass ja noch ein \n. Das wäre ein Grund weshalb es nicht klappen könnte..

MfG

c4+2008-08-12 17:17:44--
@MatthiasW: Nein hab kein \n dran.

Nein natürlich nicht..
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
c4
 2008-08-12 20:50
#113432 #113432
User since
2008-08-10
14 Artikel
BenutzerIn
[default_avatar]
ich sehs immer noch ned... kann mir das einer an meinem gepostetn quellcode ganz DICK markieren?! BITTE!
MatthiasW
 2008-08-12 21:00
#113434 #113434
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sub writePasswordToFile
{
    my $line = "";
    my $datei = "/tmp/testfile";  #Hier kommt das PW her         
    if ( -e $datei ) {
        open(my $FILE,'<',$datei);

##########################
# Da bleibt ein "\n" an $line hängen, falls eines in der Datei steht:
        $line = <$FILE>;
##########################
# Diese Anweisung fehlt bei dir:
        chomp( $line );
##########################

        close $FILE;
    }
    print "<CENTER>Wert der Var. line: '$line'</CENTER>\n";
    print "<CENTER>Wert der Var userPasswdFile: '$userPasswdFile'</CENTER>\n";
    echo "$line >> $userPasswdFile"; #<- pLZ fiX me!
}

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
c4
 2008-08-12 21:02
#113435 #113435
User since
2008-08-10
14 Artikel
BenutzerIn
[default_avatar]
okkkkkkeee, Vielen Dank :-) kannte den befehl noch nicht! werd ihn aber wohl nimmer so schnell vergessen. *ggg*

Jetzt kann ichs ja endlich mit echo machen! *spaZzZz*

grüSSe
Linuxer
 2008-08-13 12:58
#113478 #113478
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
c4+2008-08-12 19:02:42--
Jetzt kann ichs ja endlich mit echo machen! *spaZzZz*


Was Du aber nicht mehr machen willst, weil für produktiven Code von Shell abgeraten wird und Du mit Perl-Mitteln eine sauberere Lösung anfertigen kannst ;o)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2008-08-12 00:10.