Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Telnet Passwort Bereich (https://www.delphipraxis.net/88636-telnet-passwort-bereich.html)

delphis spassbremse 18. Mär 2007 16:31


Telnet Passwort Bereich
 
Moinzen...

und zwar habe ich ein Problem mit dem Indy Telnetserver (ist eig. egal)

ich mache während ein paar vorgängen passwortabfragen...
nur möchte ich nicht, dass man das passwort in der konsole
sieht, sondern z.B. 99817 durch ***** ersetzt wird..

nun weiß ich, dass man die farbe mit ?]30m in schwarz ändern kann,
wobei das pw verstekt wird... nur kann man das auch in der * Methode machen?

MFG

SirThornberry 18. Mär 2007 16:39

Re: Telnet Passwort Bereich
 
das ganze hat doch aber nichts mit dem telnet an sich zu tun sondern mit der Anwendung welche das Passwort erwartet. Unter Linux ist es zum Beispiel üblich das, das eingegebene Passwort gar nicht ausgegeben wird (auch nicht mit * etc.)

delphis spassbremse 18. Mär 2007 16:45

Re: Telnet Passwort Bereich
 
natürlich hat das was mit telnet zu tun.... es kommt doch drauf an, welche zeichenkette der server zum client sendet... wenn der server "?[33m blabla" sendet, dann ist der text gelb

das bei ssh verbindungen kein pw angezeigt wird, das liegt daran, das beim pw die schriftfarbe auf schwarzg esetzt wurde...

SirThornberry 18. Mär 2007 16:52

Re: Telnet Passwort Bereich
 
wie du schon schreibst, es wird angezeigt was der server zum client sendet. Wenn du zu einem Telnet-Server verbindest, dieser ein Passwort verlangt aber das eingegebene nicht ausgibt dann siehst du auch nichts. Auch ohne ssh siehst du kein passwort wenn du dich auf einem linux einloggst, du siehst das Passwort eben so wenig wenn du direkt an der console arbeitest weil eben das Passwort nicht ausgegeben wird.

delphis spassbremse 18. Mär 2007 16:54

Re: Telnet Passwort Bereich
 
es geht aber nicht darum, wenn er verbindet, sondern
wenn zum beispiel delete ausgeführt werden soll.

den befehl help soll dagegen auch für alle anderen ohne pw ausführbar sein

SirTwist 18. Mär 2007 21:26

Re: Telnet Passwort Bereich
 
Zitat:

Zitat von delphis spassbremse
das bei ssh verbindungen kein pw angezeigt wird, das liegt daran, das beim pw die schriftfarbe auf schwarzg esetzt wurde...

Nein! Das hat nichts mit Farbsetzungen oder ähnliches zu tun. Bei Dir auf dem Bildschirm (in der Telnet-Konsole) wird nur das angezeigt, was die Serversoftware zu Dir zurückschickt. Bei einer normalen Eingabezeile schickt die Serversoftware (z.B. die Shell/Bash) jedes Zeichen, dass Du eingibst, wieder zurück, damit es auch angezeigt wird.

Gerade bei Password-Prompts wird dieses "Echoing" ausgeschaltet. Die Serversoftware speichert zwar deine Eingaben, schickt aber nichts zurück.

Welche Software läuft denn auf der anderen Seite? Ist das ein Perlskript, was selbstgeschriebenes oder ein fertiges Programm?

delphis spassbremse 19. Mär 2007 13:16

Re: Telnet Passwort Bereich
 
also...

es geht hier um den telnetserver

dann wird man auch mit einem telnetclienten darauf
connecten (windows telnet konsole oder putty...)

und ihc denk mal, wenn man mit ?["zahl"m die schriftfarbe der konsole
ändern kann, dann müsste es auch einen string geben, der
die nächste eingabe mit * versieht...

SirTwist 19. Mär 2007 14:34

Re: Telnet Passwort Bereich
 
Zitat:

Zitat von delphis spassbremse
und ihc denk mal, wenn man mit ?["zahl"m die schriftfarbe der konsole
ändern kann, dann müsste es auch einen string geben, der
die nächste eingabe mit * versieht...

Nein. Das gibt es nicht. Das was Du meinst, sind ANSI-Steuersequenzen. Und jedes Terminal versteht andere Steuersequenzen. Es gibt z.B. auch Terminals, die gar keine Farbcodes unterstützen. Es ist einzig und allein Sache des Programms, dass die einzelnen Zeichen entgegennimmt, diese eventuell auch wieder zurückzuschicken.

Auf welchem Betriebssystem läuft der Telnetserver? Unter den verschiedenen Unices ist ein Telnetserver ein relativ dummes Programm, dass einfach nur eine TCP-Verbindung entgegennimmt und dann ein bestimmtes Programm startet und die Netzwerkverbindung mit der Ein/Ausgabe dieses Programms verbindet. Erst dieses Programm führt dann die Anmeldung durch (prompt "login:").

PS: die automatische Erklärung, die für "ANSI" eingeblendet wird, ist falsch!

IngoD7 19. Mär 2007 16:00

Re: Telnet Passwort Bereich
 
Zitat:

Zitat von SirTwist
Und jedes Terminal versteht andere Steuersequenzen. Es gibt z.B. auch Terminals, die gar keine Farbcodes unterstützen.

Genau!

Und da der Begriff Terminal hier eingeführt wurde, kurz einen kleinen Schritt zurück:
Telnet ist ein Netzwerkprotokoll. Wie sich Client und Server z.B. beim Verbindungsaufbau zu unterhalten haben, steht u.a. in diesem Protokoll beschrieben.

Als Telnet entwickelt wurde, gab es keine PC's. Was man heute Client nennen würde, waren oft nur klobige Terminals, die grob gesagt oft nicht mehr waren als ein "Schwarz-Weiß-Fernseher mit Tastatur", der Buchstaben und Zahlen anzeigen konnten. Interessant für den Server wird die Art oder der Typ eines Terminal-Clients erst nach Verbindungsaufbau. Genauer: Für das auf dem Server ablaufende Kommunikationsprogramm wird es interessant. Dieses muss dann den "anrufenden" Terminaltyp kennen, um mit ihm ein und dieselbe Sprache zu sprechen. Unterschiedliche Terminaltypen kennen unterschiedliche Befehlssequenzen. Der Server muss also wissen, was er zu schicken hat, damit das Terminal seinen Bildschirm löscht. Er muss auch wissen, ob das Terminal Farbe anzeigen kann oder nicht. Usw. usf. etc. pp.

Heutige Computer sind natürlich keine Terminals mehr. Sie besitzen keinen einzigartigen Terminalbefehlssatz zur Steuerung ihres Anzeigebildschirms. Computer müssen ggf. lediglich einem Server gegenüber als Terminal auftreten. Dazu wird ein "Terminalprogramm" auf ihnen ausgeführt, welches ein Terminal emuliert. Wenn nun z.B. ein VT220-Terminal emuliert wird bzw. der Server annimmt, er kommuniziert mit einem solchen Terminal, so könnte das Serverprogramm mit lustigen Sequenzen daherkommen, die versuchen, auf dem Client z.B. ein Wort invers und blinkend darzustellen.

Nun zurück zum Problem:
Wenn eine bestimmte Terminalemulation gefahren wird, so sollte man sich als Programmierer der Client- und/oder Serversoftware wohl oder übel mit der dazugehörigen "Sprache" beschäftigen.

Wenn man Server- und Clientprogramm programmiert und sich entschließt, keine bestehenden/bekannten Emulationen zu benutzen, so kann man sich auch selber eine Sprache stricken. Hauptsache, Server und Client verstehen sich.

Und auf den Thread bezogen bringt mich das zu der Frage: Was soll eigentlich programmiert werden? Ein Telnet-Client oder ein Telnet-Server? Von welchem Delete-Befehl, der eine PW-Abfrage erforderlich machen soll, war weiter oben im Thread die Rede? Welche "Sprache", die Server und Client gemeinsam sprechen müssen, definiert denn diesen Delete-Befehl?

Wenn über die Telnet-Verbindung geheime Dinge wie Paßwörter rauschen, die auf dem Client nicht angezeigt werden sollen, so darf der Client die Paßworteingabe nicht echoen. Normalerweise ist das lokale Echo aber meist eh abgeschaltet. Der Server darf ebenfalls nichts senden oder aber pro Buchstabe einen * zurückschicken. Wichtig ist, dass der Server auch wirklich weiß, wann er nichts zu senden hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz