Homepage

  • Projekte
  • Shop
  • Forum
Erweiterte Suche
  • Schnellzugriff
    • Unbeantwortete Themen
    • Aktive Themen
    • Suche
  • FAQ
  • Anmelden
  • Registrieren
  • Foren-Übersicht
  • Suche

Passwortschutz nur auf bestimmten html- Seiten

Ihr habe noch Fragen zum AVR Webmodule? Dann seit Ihr hier genau richtig!
Antworten
  • Druckansicht
Erweiterte Suche
10 Beiträge • Seite 1 von 1
laserandi
Beiträge: 25
Registriert: 21.01.2010, 21:38:15

Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von laserandi » 21.01.2010, 21:53:01

Hallo Forum,
ich teste gerade das von Herrn Radig entworfene Webmodul.
Meine Frage:
Lässt sich die Passwortabfrage auch nur auf bestimmte Seiten anwenden?
Z.B.:
index.htm -> kein Passwort
seite2.htm -> mit Passwort
Ich verwende Wil's Software Version 1.0.6 mit sd-Karten Unterstütung.

Gruß
Andi

PS: Es macht wirklich Laune mit dem Modul zu spielen. Vielen Dank an alle Mitwirkenden für die Software, Schaltpläne etc ......
Nach oben

laserandi
Beiträge: 25
Registriert: 21.01.2010, 21:38:15

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von laserandi » 26.01.2010, 23:28:41

Jetzt habe ich festgestellt, dass der Passwortschutz sowieso nur für html-Seiten im RAM funktioniert. Bei Seiten , die von der sd-Karte geladen werden, findet zwar eine Passwortabfrage statt aber nach betätigen der "Abbrechen" Taste wird die Seite trotzdem angezeigt. Damit hat sich das Thema wohl erledigt.
Nach oben

laserandi
Beiträge: 25
Registriert: 21.01.2010, 21:38:15

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von laserandi » 11.07.2010, 23:26:54

Bin ich der Einzige, bei dem der Passwortschutz nicht funktioniert?
Sämtliche Webseiten von der sd-Karte werden nach einem Klick auf "Abbrechen" bei der Passwortabfrage angezeigt. Nur die Digitalausgänge (über javascript) können nicht gesetzt werden.
Nach oben

Klaus
Beiträge: 409
Registriert: 17.02.2008, 12:18:39

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von Klaus » 12.07.2010, 00:41:20

Hi,

dazu kann ich aus eigener Erfahrung nix sagen da ich keine SD-Karte nutze. Aber ich hab mal was im Forum über dieses Problem gelesen und da war irgendein Flag das nicht richtig verarbeitet wird die Ursache für das Verhalten. Versuch Dein Glück nochmal mit der Suche-Funktion.



mfg
Klaus
Nach oben

laserandi
Beiträge: 25
Registriert: 21.01.2010, 21:38:15

[teil-gelöst] Re: Passwortschutz nur auf bestimmten html- Se

  • Zitieren

Beitrag von laserandi » 12.07.2010, 22:41:42

"Flag" war genau das Stichwort was mir gefehlt hat.
Dadurch bin ich hierauf gestoßen:
http://www.ulrichradig.de/forum/viewtop ... =32&t=1831

Jetzt funktioniert es auch mit Karte.

Daaannnnke Klaus, den Thread hätte ich mir sonst nie angeschaut.

Die Passwortabfrage für bestimmten Seiten wird vertagt (das ist mit Sicherheit eine größere Baustelle).
Im Moment kümmere ich mich mehr um die Einbindung der MCA-25.
Nach oben

TPB
Beiträge: 11
Registriert: 13.07.2010, 14:16:37

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von TPB » 13.07.2010, 14:45:26

@Andi

Ich bin wirklich kein C Spezialist, aber ich habe das mit den Passwörten beim ETH_M32_EX für zwei verschiedene Seiten so gelöst.

Achtung, das ist nicht der vollständige Code, sondern nur die Stellen an den Änderungen vorgenommen wurden. Bitte selbst raussuchen wo das genau ist.

Code: Alles auswählen

***************************************************************************
Änderungen in httpd.c
__________________________________________________________________________
//Hier wird das codierte Passwort aus config.h gespeichert.
unsigned char http_auth_passwort_1[30];
unsigned char http_auth_passwort_2[30];

//---------------------------------------------------------------------------------------------------------------------
//Initialisierung des Httpd Testservers
void httpd_init (void)
{
	decode_base64((unsigned char*)HTTP_AUTH_STRING_1,http_auth_passwort_1);
	decode_base64((unsigned char*)HTTP_AUTH_STRING_2,http_auth_passwort_2);

	//Serverport und Anwendung eintragen
	add_tcp_app (HTTPD_PORT, (void(*)(unsigned char))httpd);
}
  
//----------------------------------------------------------------------------
//HTTPD_STACK löschen
void httpd_stack_clear (unsigned char index)
{
	http_entry[index].http_header_type = 0;
	http_entry[index].first_switch = 0;
	http_entry[index].http_auth_1 = HTTP_AUTH_DEFAULT_1;
	http_entry[index].http_auth_2 = HTTP_AUTH_DEFAULT_2;
	http_entry[index].new_page_pointer = 0;
	http_entry[index].old_page_pointer = 0;
	http_entry[index].post = 0;
	http_entry[index].auth_ptr_1 = http_auth_passwort_1;
	http_entry[index].auth_ptr_2 = http_auth_passwort_2;
	http_entry[index].post_ptr = post_in;
	http_entry[index].post_ready_ptr = post_ready;
	http_entry[index].hdr_end_pointer = rx_header_end;
			
	HTTP_DEBUG("\r\n**** NEUE HTTP ANFORDERUNG ****\r\n\r\n");	
	return;
}

//----------------------------------------------------------------------------
//Eintreffenden Header vom Client checken
void httpd_header_check (unsigned char index)
{
	unsigned int a = 0;
	
	if(strcasestr_P((char*)&eth_buffer[TCP_DATA_START_VAR],PSTR("POST"))!=0)
	{
		http_entry[index].post = 1;
	}
	
	//finden der Authorization und das Ende im Header auch über mehrere Packete hinweg!!	
	if(*http_entry[index].hdr_end_pointer != 0)
	{		
		for(a=TCP_DATA_START_VAR;a<(TCP_DATA_END_VAR);a++)
		{	
			HTTP_DEBUG("%c",eth_buffer[a]);
			
			if(!http_entry[index].http_auth_1)
			{
				if (eth_buffer[a] != *http_entry[index].auth_ptr_1++)
				{
					http_entry[index].auth_ptr_1 = http_auth_passwort_1;
				}
				
				if(*http_entry[index].auth_ptr_1 == 0) 
				{
					http_entry[index].http_auth_1 = 1;
					HTTP_DEBUG("  <---LOGIN OK!--->\r\n");
				}
			}
			
			if(!http_entry[index].http_auth_2)
			{
				if (eth_buffer[a] != *http_entry[index].auth_ptr_2++)
				{
					http_entry[index].auth_ptr_2 = http_auth_passwort_2;
				}
				
				if(*http_entry[index].auth_ptr_2 == 0) 
				{
					http_entry[index].http_auth_2 = 1;
					HTTP_DEBUG("  <---LOGIN OK!--->\r\n");
				}
			}
			
	
			if (eth_buffer[a] != *http_entry[index].hdr_end_pointer++)
			{
				http_entry[index].hdr_end_pointer = rx_header_end;
			}
			
			//Das Headerende wird mit (CR+LF+CR+LF) angezeigt!
			if(*http_entry[index].hdr_end_pointer == 0) 
			{
				HTTP_DEBUG("<---HEADER ENDE ERREICHT!--->\r\n");
				break;
			}
		}
	}
….
}

//----------------------------------------------------------------------------
//Wurde ein Passwort in den ganzen Headerpacketen gefunden?
//Wenn nicht dann ausführen und Passwort anfordern!
if(((!http_entry[index].http_auth_2) && tcp_entry[index].status&PSH_FLAG) && ((!http_entry[index].http_auth_1) && tcp_entry[index].status&PSH_FLAG))
{	
//HTTP_AUTH_Header senden!
	http_entry[index].new_page_pointer = Page0;
	memcpy_P((char*)&eth_buffer[TCP_DATA_START_VAR],http_header2,(sizeof(http_header2)-1));
	tcp_entry[index].status =  ACK_FLAG | PSH_FLAG;
	create_new_tcp_packet((sizeof(http_header2)-1),index);
	tcp_entry[index].app_status = 2;
	return;
}
	
if(((!http_entry[index].http_auth_1) && tcp_entry[index].status&PSH_FLAG) && (http_entry[index].new_page_pointer))
{	
	//HTTP_AUTH_Header senden!
	http_entry[index].new_page_pointer = Page0;
	memcpy_P((char*)&eth_buffer[TCP_DATA_START_VAR],http_header2,(sizeof(http_header2)-1));
	tcp_entry[index].status =  ACK_FLAG | PSH_FLAG;
	create_new_tcp_packet((sizeof(http_header2)-1),index);
	tcp_entry[index].app_status = 2;
	return;
}
	
//Standard INDEX.HTM Seite wenn keine andere gefunden wurde
if (!http_entry[index].new_page_pointer)
{
http_entry[index].new_page_pointer = Page1;
	http_entry[index].http_header_type = TEXT_HTML;
}

tcp_entry[index].app_status = 2;



/*	
//Passwort wurde im Header nicht gefunden
if((!http_entry[index].http_auth) && (http_entry[index].new_page_pointer))
{
	http_entry[index].new_page_pointer = Page0;
}
*/

**************************************************************
Änderungen in httpd.h
---------------------------------------------------------------------------------------------------

struct http_table
	{
		PGM_P old_page_pointer				;	
		PGM_P new_page_pointer				;
		unsigned char *auth_ptr_1 				;
		unsigned char *auth_ptr_2				;
		unsigned char *hdr_end_pointer			;
		unsigned char http_auth_1 		: 1		;
		unsigned char http_auth_2 		: 1		;
		unsigned char http_header_type	: 3		;
		unsigned char first_switch		: 1		;
		unsigned char post			: 1		;
		unsigned char *post_ptr				;
		unsigned char *post_ready_ptr			;
	};
------------------------------------------------------------------------------------------------------	

****************************************************************
Änderungen in config.h
_________________________________________________________________
//Webserver mit Passwort? (0 == mit Passwort)
	#define HTTP_AUTH_DEFAULT_1  0
	#define HTTP_AUTH_DEFAULT_2  0
	
	
//AUTH String "USERNAME1:PASSWORT1" max 14Zeichen für Username1:Passwort1
#define HTTP_AUTH_STRING_1 "admin1:admin1"
	
//AUTH String "USERNAME2:PASSWORT2" max 14Zeichen für Username2:Passwort2
#define HTTP_AUTH_STRING_2 "admin2:admin2"
_________________________________________________________________

Vielleicht hilft es dir.

Viele Erfolg!

Gruß

Tom
Nach oben

laserandi
Beiträge: 25
Registriert: 21.01.2010, 21:38:15

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von laserandi » 15.07.2010, 22:56:56

Hey Tom, vielen Dank. Das Problem ist, dass ich nicht nur wenig Ahnung von C habe sondern noch viel weniger von http. Ich muss mir da erst mal ein bisschen was anlesen, um zu verstehen wie die Passworte mit der zugehörigen Webseite verknüpft werden.
Trotzdem wird mir das Beispiel weiterhelfen.
Gruß
Andi
Nach oben

RettungsTim
Beiträge: 2
Registriert: 20.03.2010, 08:13:04

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von RettungsTim » 12.01.2011, 18:27:02

Hallo,

Ich hab den Code nicht ganz verstanden. Wo sagst du ihm nun welche Seite mit dem neuen pw versehen wird?

Grüße
Tim
TPB hat geschrieben:@Andi

Ich bin wirklich kein C Spezialist, aber ich habe das mit den Passwörten beim ETH_M32_EX für zwei verschiedene Seiten so gelöst.

Achtung, das ist nicht der vollständige Code, sondern nur die Stellen an den Änderungen vorgenommen wurden. Bitte selbst raussuchen wo das genau ist.

code...

Vielleicht hilft es dir.

Viele Erfolg!

Gruß

Tom
Nach oben

faberemil
Beiträge: 1
Registriert: 06.11.2013, 18:13:40

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von faberemil » 08.11.2013, 05:32:48

Hat das mit dem Passwortschutz für eine einzige HTML-Seite schon jemand ausprobiert?
Ich suche schon seit 3 Tagen verzweifelt eine Lösung. Ich bräuchte ebenfalls nur eine einzige Seite PW-geschützt.
Ich habe das (siehe oben) ausprobiert, aber mir fehlt das Verständnis dazu, wie ich damit nur eine Seite PW-geschützt hinbekomme. Ich möchte eine offen zugängliche Seite und eine PW-geschützte Seite haben, in der ich meine ganzen Steuerungen unterbringe.

Ich wäre für eine kleine Hilfe sehr dankbar.


Grus Stefan
Nach oben

barneyz
Beiträge: 37
Registriert: 02.05.2009, 13:30:40

Re: Passwortschutz nur auf bestimmten html- Seiten

  • Zitieren

Beitrag von barneyz » 29.11.2014, 19:22:39

Also ich habe für Zugriffe im LAN die Passwortabfrage abgeschaltet:

Code: Alles auswählen

void httpd_header_check (unsigned char index)
{
	int a = 0;

// 14.04.2012 BN #008 keine Authentifizierung, wenn hausinterne IP
	if(( (unsigned char)IP_INTERN_1 == (unsigned char)eth_buffer[IP_OFFSET+12])&&
		((unsigned char)IP_INTERN_2 == (unsigned char)eth_buffer[IP_OFFSET+13])&&
		((unsigned char)IP_INTERN_3 == (unsigned char)eth_buffer[IP_OFFSET+14]))
	{
		http_entry[index].http_auth = 1; // Keine Authentifikation wenn hausinterner IP-Bereich
	}

Wenn man statt des IP-Vergleichs einen Vergleich auf den Dateinamen an dieser Stelle macht, funktioniert das....
Nach oben

Antworten
  • Druckansicht

10 Beiträge • Seite 1 von 1

Zurück zu „AVR-Webmodule“



  • Foren-Übersicht
  • Alle Zeiten sind UTC+02:00
  • Alle Cookies löschen

Powered by phpBB® Forum Software © phpBB Limited

Deutsche Übersetzung durch phpBB.de

Datenschutz | Nutzungsbedingungen

 

 

sitemap  |    |  datenschutz   |  impressum