[AIX / Apache / Perl] HTTP_VARS domein en userid

Pagina: 1
Acties:

  • UltraSub
  • Registratie: Mei 2003
  • Laatst online: 04-05 08:18
Zitten hier op het werk met een technisch probleempje, waarvoor ik een script nodig heb dat op een apache server moet draaien. Op dit moment geven users ons de databases door welke excluded moeten worden van backup, waarna mijn collega's en ik dit excluden. Dit doen we middels een perl scrippie op een apache server.
Nu willen we dit uit handen geven, en het de users zelf laten doen. Echter voor ik dit zo kan doen, moet er wel meer controle zijn. M.a.w., ik wil in de logs domain\user kunnen zien, en dan niet dat ik het de gebruiker zelf laat invullen, want das natuurlijk niet betrouwbaar. Ik weet dat ASP dit kan, maar ASP is geen optie. Perl kan het middels Win32::LoginName() en Win32::DomainName(). Dit werkt voortreffelijk, echter met het probleem dat het alleen werkt als een user rechtstreeks het script draait. Als de webserver het draait, zie je het userid van de webserver.

Heb me werkelijk mottig gezocht, maar het lijkt er op dat alleen ASP dit kan icm IIS.
Zijn er oplossingen voor ons?

  • UltraSub
  • Registratie: Mei 2003
  • Laatst online: 04-05 08:18
Klein schopje... :)
Niemand met de verlossende tip?

  • FireWood
  • Registratie: Augustus 2003
  • Laatst online: 00:29
Je kunt volgens mij de actuele user in windows niet vinden vanaf de webserver.

edit: Ik ben alle variabelen langsgegaan: Het is niet mogelijk om het rechtstreeks te doen. Je moet dan clientsite scripts gebruiken, misschien zit daar nog een oplossing in. (activex/js/vbs)


Ik denk dat het het makkelijkst gaat als je in het perl script een inlogsysteem aanmaakt, zodat de user eerst moet inloggen. Dit log je en schrijf je direct ergens weg. Je kunt dan direct meerdere dingen loggen en je hebt controle genoeg.

Dit lijkt mij niet echt moeilijk, of begrijp ik je ergens verkeerd?

[ Voor 31% gewijzigd door FireWood op 05-06-2005 12:18 ]

Noobs don't use "F1", Pro's do, but they can't find the information they needed


  • UltraSub
  • Registratie: Mei 2003
  • Laatst online: 04-05 08:18
Nee nee, je begrijpt me niet verkeerd.
Het enige wat ik wilde weten is of er een module voor Perl is die het mogelijk maakt simpelweg een variabele te verkrijgen die me het nt domein en userid in een klap geeft. Om die even snel in een mailtje te zetten als iemand iets wijzigt. Puur om wat meer controle te hebben. We wilden een login systeem eigenlijk vermijden.

Maar goed, ik denk dat het dan toch een login systeem gaat worden ;)
Bedankt!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Serverside scripts kunnen alleen bij de server kijken naar instellingen, en naar wat de client aan headers doorstuurt. Het lijkt me niet dat een client iedereen gaat vertellen wat zijn Windows username is, dus dit kun je volgens mij niet serverside oplossen. Clientside misschien wel; als je die optie graag wil verkennen wil ik je topic wel verplaatsen naar Webdesign & Graphics, waar ze hier meer vanaf weten. Laat het even weten via een TR (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/icon_hand.gif). :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

-NMe- schreef op zondag 05 juni 2005 @ 12:51:
Serverside scripts kunnen alleen bij de server kijken naar instellingen, en naar wat de client aan headers doorstuurt. Het lijkt me niet dat een client iedereen gaat vertellen wat zijn Windows username is, dus dit kun je volgens mij niet serverside oplossen.
Volgends mij toch wel :)

Ik heb op mijn vorige werk een scriptje gemaakt waarmee je via PHP wat NetBIOS gegevens kan uitlezen. Oa de username (iig op Windows 98). Mischien heeft XP met SP2 er wat meer moeite mee, maar dat weet ik niet. Mischien zit er een klein bugje in ;)

http://baracuda.homeip.net/opensource/incl.NETBIOS.phps

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op maandag 06 juni 2005 @ 01:03:
[...]

Volgends mij toch wel :)

Ik heb op mijn vorige werk een scriptje gemaakt waarmee je via PHP wat NetBIOS gegevens kan uitlezen. Oa de username (iig op Windows 98). Mischien heeft XP met SP2 er wat meer moeite mee, maar dat weet ik niet. Mischien zit er een klein bugje in ;)

http://baracuda.homeip.net/opensource/incl.NETBIOS.phps
Op zich een goede oplossing, mits je ervanuit gaat dat je poort 137 kunt aanspreken, wat dus betekent dat je gebruiker geen te strak afgestelde firewall of router kan gebruiken, lijkt me. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Het lijkt mij tenminste niet de veiligste oplossing. Mensen zullen het niet fijn vinden als je via een webserver je username kunt opvragen. Dat zou ik tenminste vinden.

Poorten openzetten zorgt ook nog eens voor een extra risico, wat gebruikers misschien niet op prijs zullen stellen.

My personal videoteek: -Clique-; -NMe- is een snol!


Verwijderd

Kayshin schreef op maandag 06 juni 2005 @ 10:17:
Poorten openzetten zorgt ook nog eens voor een extra risico, wat gebruikers misschien niet op prijs zullen stellen.
Nee dat klopt, maar als het voor binnen het bedrijf alleen is, dan lijkt me dat niet het grootste probleem. Als je dit ook wil realiseren voor thuisgebruikers met routers, veel succes. Dan moet iedereen poort 137 sowieso doormappen naar zijn eigen pc. Daarom kan je dit alleen gebruiken achter een enkelvoudige internetverbinding (geen router dus), of binnen een bedrijfsnetwerk.

Ik gebruikte dit scriptje altijd om te zien welke gebruiker achter welke computer zat op mijn oude werk (Win98 op clients, 2000 afv. serv. als server). Op mijn nieuwe werk zal ik dit ook wel gaan gebruiken, dus mocht de USERNAME niet werken, dan maak ik dat binnekort wel (as week verhuizen we, daarna snel nodig gezien nieuwe manier van werken).

  • UltraSub
  • Registratie: Mei 2003
  • Laatst online: 04-05 08:18
Verwijderd schreef op maandag 06 juni 2005 @ 01:03:
[...]

Volgends mij toch wel :)

Ik heb op mijn vorige werk een scriptje gemaakt waarmee je via PHP wat NetBIOS gegevens kan uitlezen. Oa de username (iig op Windows 98). Mischien heeft XP met SP2 er wat meer moeite mee, maar dat weet ik niet. Mischien zit er een klein bugje in ;)

http://baracuda.homeip.net/opensource/incl.NETBIOS.phps
Damn.. Nice man! _/-\o_
Bedankt, ga ik morgen ff proberen.
Kayshin schreef op maandag 06 juni 2005 @ 10:17:
Het lijkt mij tenminste niet de veiligste oplossing. Mensen zullen het niet fijn vinden als je via een webserver je username kunt opvragen. Dat zou ik tenminste vinden.

Poorten openzetten zorgt ook nog eens voor een extra risico, wat gebruikers misschien niet op prijs zullen stellen.
Het is op een intern bedrijfsnetwerk. Firewalling zal (waarschijnlijk) geen probleem zijn. Weet nog niet precies hoe eea afgeschermd is, maar proberen kan altijd.
Ik ga iig niet zeuren bij de netwerkbeheerders om poort 137 open te zetten, mocht dit intern gefirewalled zijn. Veel te veel gezeur in de infrastructuur.

Maar hier heb ik wel wat aan denk ik.
Nogmaals bedankt KingOfDos!

Verwijderd

Geen probleem :)

Mocht je problemen hebben om het uit te lezen dan mag je wel contact opnemen via email met me als je wil. Kijken of ik er dan wat aan kan doen.
Dan gooi ik een paar andere bestanden als test, dan moet je de resultaten terugmailen.

Het werkt hier lokaal (vanaf mijn Windows 2000 server naar mijn Windows XP bedrijfslaptop) NIET, maar dat kan ook aan de bedrijflaptop liggen.

[edit]
Het werkt vanaf mijn Windows 2000 server naar een van de clients die aangemeld is op mijn thuis-domain. Dan krijg ik netjes alle informatie terug van die computer.
code:
1
2
3
4
5
6
Array
(
    [computername] => BUBBLES
    [domain] => AIR
    [username] => SASCHA
)


[edit2]
Al weet ik niet zeker of die computer wel Windows XP SP2 draait, kan ook nog SP1 zijn. :/

[ Voor 28% gewijzigd door Verwijderd op 06-06-2005 21:04 ]


  • UltraSub
  • Registratie: Mei 2003
  • Laatst online: 04-05 08:18
Net ff op een 2003 server gegooid, met PHP5 en Apache, en daarna connecten met NT4 (de grote hoop werkstations hier, zeg maar "de werkstations onder policy"), werkt perfect.
Daarna met mijn eigen laptop, XP SP2, werkt ook allemaal, except username.
Zelfde als ik het doe vanaf een 2K server, ook geen username.
Wel met het volgende verschil:
code:
1
2
3
4
5
6
            //Username 3.1
            if (isset($netbios[3])) {print "yup, is set";}
            if (isset($netbios[3]) and isset($netbios[3][1]))
                                $ret_data["username"] = $netbios[3][1];
            else
                $ret_data["username"] = false;

Vanaf de 2K machine, is $netbios[3] gezet.
Vanaf SP2 niet.

Heb je enig idee wat er verschoven is in netbios bij deze OS'en?
We krijgen binnenkort een upgrade naar XP SP2 en AD, waarbij eindelijk al die NT4 workstations er uit gaan (en het meteen einde oefening is voor een rits specialisten hier om "stiekem" toch al een xp workstation te hebben :P ), maar het gevolg van die upgrade zal dus wss zijn dat dit script niet meer functioneert helaas....

Verwijderd

Zet anders ergens een print_r($netbios) neer. Dan even kijken wat de array allemaal returned. Ik zal binnekort eens gaan debuggen, maar dat gaat pas na volgende week worden. As weekend gaan wij verhuizen met ons werk naar het pand wat nou "bijna" klaar is. Gezien de nieuwe manier van werken (flexiebele werkplekken, etc) moet je kunnen weten welke gebruiker waar zit, dat ga ik uitlezen op deze manier.

Ik heb hiermee trouwens ooit een tooltje gemaakt waarmee je alle PC's binnen een subnet kon uitlezen, erg leuk op een lanparty (zeker icm http/ftp/smb check's) ;)
UltraSub schreef op dinsdag 07 juni 2005 @ 20:39:
Ok, doe ik morgen ff...
Bedankt...!
Mischien kijk ik morgen op mijn werk wel even. Maar heb het erg druk (vanwegen aanstaande verhuizing).

[ Voor 20% gewijzigd door Verwijderd op 07-06-2005 21:04 ]


  • UltraSub
  • Registratie: Mei 2003
  • Laatst online: 04-05 08:18
Ok, doe ik morgen ff...
Bedankt...!

Verwijderd

Nou geef ik hem een klein schopje :+

Is het gelukt? Of heb je nog niets getest?
Ik ben nou voor mijn werk iig bezig om het scripje werkend te krijgen op Windows XP SP2. Ik heb het volgende gevonden:
Geeks To Go Forums -> Need help with home network setup
Turn On NetBIOS over TCP/IP. Click Start, click Control Panel, and then click Network and Internet Connections. Click Network Connections.
Right-click Local Area Connection, and then click Properties. Click Internet Protocol (TCP/IP), and then click Properties. Click the General tab, and then click Advanced. Click the WINS tab. Under NetBIOS setting, click Enable NetBIOS over TCP/IP, and then click OK two times. Click Close to close the Local Area Connection Properties dialog box. Close the Network Connections window.
Ik heb het toegepast op deze laptop (met XP SP2, van mn werk). Ik ga hem nou herstarten en verder testen, resultaat komt zo.

[edit]
Ik heb nog wat dingen geconteroleerd:
• Firewall staat uit
• NetBIOS over TCP/IP staat aan
• Alles werkt verder zoals op alle andere computers die geen SP2 hebben, behalve de Username

Ik kan via "nbtstat -a dezecomputernaam" ongeveer het zelfde uitlezen als mijn script, ook zonder de gebruikersnaam. Als ik "nbtstat -a computerzondersp2" uitvoer dan krijg ik wel de gebruikersnaam. Volgends mij zit het wel wat dieper.

Iemand een oplossing voor dit probleem?

[edit]
Voor het nageslacht / de searchende users onder ons:

Het is simpel op te lossen, gewoon de messenger service starten, als die niet gestart is dan wil hij de gebruikersnaam niet teruggeven!

Invoeren in DOS-Prompt:
code:
1
sc start messenger
SC is services beheer voor scripting (net als bijvoorbeeld devcon.exe een devicemanager is).
[code]

[ Voor 34% gewijzigd door Verwijderd op 21-06-2005 17:39 ]

Pagina: 1