ipadres DirectAdmin anders dan php ipadres?

Stel hier je vragen met betrekking tot PHP, MySQL, HTML, CSS en JavaScript.
Forumregels
Check eerst even onze handleiding (http://help.antagonist.nl/) voordat je hier je vraag stelt. Voor de meeste problemen hebben we een oplossing met een zeer uitgebreide uitleg.
Plaats reactie
fred54
Berichten: 4
Lid geworden op: 08 jan 2019, 19:11

ipadres DirectAdmin anders dan php ipadres?

Bericht door fred54 » 08 jan 2019, 19:19

Betreft DirectAdmin + PHP (instellingen).

DirectAdmin maakt logverslagen aan in directory logs, o.a. mijnwebsite.nl.log.1
In dit bestand wordt o.a. de tijd en het binnenkomende ipadres gelogd.

In mijn script Contact.php haal ik ook de tijd op en het ipadres met commando $_SERVER['REMOTE_ADDR'].
Dit ipadres is echter een ander adres dan dat van DirectAdmin in het logverslag, terwijl het op de seconde af dezelfde tijd is!
Bovendien!! het ipadres dat via het php script opgehaald wordt is het adres van mijn persoonlijke thuis-pc.

De tijden waarop het Contact.php script wordt aangeroepen is willekeurig (en meestal door bots o.i.d.).
Ook op tijden dat al mijn apparatuur helemaal uit staat.

Meestal proberen bots rommel-spam (o.a. links) in te vullen in HTML textarea’s.
Ook kan er blijkbaar toch een POST (verzenden) gedaan worden, terwijl javascript het invullen van bv het teken “/” verbiedt, en de verzendbutton disabled.

Via de site stackoverflow kreeg ik de suggestie de volgende vraag te stellen aan de provider:
“Is er sprake van een of andere vorm van proxying van php requests (op de servers van antagonist… instellingen).”

Andere suggesties over dit vreemde verschijnsel?

Ik ben niet zo thuis in php-instellingen/configuraties.

Reno
Berichten: 118
Lid geworden op: 22 jan 2010, 18:25

Re: ipadres DirectAdmin anders dan php ipadres?

Bericht door Reno » 09 jan 2019, 00:18

Vreemd verhaal, mede doordat ik niet helemaal begrijp wat je nu wilt bereiken. Antagonist maakt geen gebruik van proxies of iets dergelijks. Dit is iets waar je zelf invloed op hebt.

Uitgaande van dat het IP-adres in DirectAdmin klopt (en je dus niet een proxy gebruikt zoals CloudFlare), zal je je script Contact.php moeten debuggen. Je kunt vrij eenvoudig controleren of de variabele REMOTE_ADDR (het IP-adres van de inkomende verbinding) de juiste waarde geeft door een PHP-bestand aan te maken, te uploaden, en deze te benaderen. Hierin zet je het volgende:

Code: Selecteer alles

<?php print_r($_SERVER['REMOTE_ADDR']); exit(); ?>
Dit bestand benader je via je eigen PC. Controleer of het IP-adres overeenkomt (www.watismijnip.nl) met die van je thuisnetwerk. Daarna benader je dezelfde URL met je mobiel via 4G en controleer het IP opnieuw. Als hier een verschil in zit, dan lijkt het erop dat er een laag tussen zit (een proxy). Zo niet, dan is er iets anders aan de hand met je script (afhankelijk wat je wilt bereiken, want ik kan niks vreemds opmerken uit je verhaal).

Overigens is javascript altijd client-side, wat inhoud dat het uitgevoerd wordt op de PC van de bezoeker. Om formulieren enkel via javascript te valideren is "not-done", omdat je de input nooit kunt vertrouwen aangezien gebruikers deze zelf kunnen manipuleren. Dat gezegd hebbende, moet je user input nooit blindelings vertrouwen en direct verwerken, ook niet via PHP. Bouw daarom altijd (meerdere) validatiemomenten in, minimaal op server-side niveau.

Bots hebben javascript meestal uitgeschakeld, en dus zal je formulier voor hen niet via javascript uitgeschakeld worden. Hierdoor kunnen ze het formulier gewoon versturen en speciale tekens gebruiken. Je kunt dit zelf checken door in je browser javascript uit te schakelen en te zien wat er gebeurt op je pagina.

fred54
Berichten: 4
Lid geworden op: 08 jan 2019, 19:11

Re: ipadres DirectAdmin anders dan php ipadres?

Bericht door fred54 » 09 jan 2019, 07:35

(Reno)
Wat wil ik bereiken:
Als in formulier een fout teken wordt ingevuld, dan log ik dat in bestand (tijd + ip-adres + betreffende tekst).
Ik ben zo te weten gekomen dat er sex gerelateerde teksten + links ingevuld worden.
Die betreffende ip-adressen wil ik blokken, door ze, in begin van php script te controleren en er dan uit te gooien (exit).
Het vreemde daarbij is dat de adressen die ik met php ophaal ANDERS zijn dan ik in het logverslag van DirectAdmin terug vind (met dezelfde tijd). php geeft nota bene mijn eigen ip-adres terug. Mijn eigen adres kan ik natuurlijk niet blokken.... en waarom mijn adres hier?

Proxy:
Het verhaal over proxy komt van de site stackoverflow waar ik eerder mee contact had (forum). Ikzelf ben niet zo in beeld met proxy etc. maar heb die opmerking in mijn vorige bericht gezet. (van proxy weet ik dat het een soort tussen-adres is en niet het eigenlijke adres van een verbinding tussen A en B, evt met meerdere tussen-adressen.....zo iets volgens mijn weten :) )

Debuggen:
Je stelt voor te debuggen d.m.v. code <?php print_r($_SERVER['REMOTE_ADDR']); exit(); ?>
Dit gebeurd immers reeds door mijn php script.
Het uitvoeren van webpagina's door verschillende van mijn apparaten levert allemaal het zelfde ip-adres op met $_SERVER['REMOTE_ADDR']) namelijk die van mij (mijn echte adres).

Javascript:
Je zegt dat BOTS's javascript uit zetten. Ik kom na "ervaring" ook tot die conclusie....Dat heb ik reeds getest door in de browser javascript uit te zetten, de betreffende verzend button (standaard disabled) wordt dan, omdat javascript controle ontbreekt, ook niet meer aan gezet indien tekstveld OK is. Ik vermoed dat ik over het hoofd heb gezien dat die verzend button door een BOT gewoon "ge-enabled" of genegeerd (?) kan worden.... en dus toch verzonden.
Ik doe enkele javascript controles, maar ik ben me er van bewust dat echte controle in php moet plaatsvinden, dat doe ik dan ook uitvoerig!

Resterend:
Blijft de vraag.....
1) Waarom verschillende resultaten voor ip-adres
2) Waarom mijn eigen ip-adres in php-log en een ander adres in DirectAdmin-log

Reno
Berichten: 118
Lid geworden op: 22 jan 2010, 18:25

Re: ipadres DirectAdmin anders dan php ipadres?

Bericht door Reno » 09 jan 2019, 12:05

Wat je wilt bereiken:
Ik zou dit eerder bij het begin aanpakken, en het formulier met reCaptcha van Google beveiligen (gratis) in plaats van zelf een filter maken, maar dat terzijde.

DirectAdmin geeft altijd het goede IP-adres terug, mits er gebruik wordt gemaakt van een proxy. In jouw geval is er dus geen gebruik gemaakt van een proxy dus DirectAdmin geeft het goede IP-adres weer (normaal gesproken).
Dan zit de oorzaak dus bij je script. Vandaar dat ik vroeg wat er gebeurt als je een compleet nieuw bestand aanmaakt met enkel de 2 functies die ik eerder stuurde om te controleren of dat wel het goede IP-adres teruggeeft. Ik heb het net zelf even snel getest op mijn server (gehost bij Antagonist), en in mijn geval is dat namelijk wel zo.

Proxy:
Lijkt me dus niet van toepassing in jou geval.

Resterend:
1. Durf ik zo geen antwoord op te geven.
2. Wat voor IPs staan er dan in DirectAdmin? Altijd dezelfde, altijd een andere? Google het Ip-adres eens. Ik maak uit jouw antwoord op dat DirectAdmin een fout IP-adres zou teruggeven. Heel vreemd.

Bovenstaand is trouwens gebaseerd op wat je uitlegt en wat mijn ervaring is met DA, PHP etc.


Resultaten van test:

Code: Selecteer alles

Watismijnip.nl
Uw IP-Adres: 145.93.58.xx

Code: Selecteer alles

PHP-script met testcode
145.93.58.xx

Code: Selecteer alles

DirectAdmin log
145.93.58.xx - - [09/Jan/2019:13:09:02 +0100] "GET /test.php HTTP/1.1" 200 32 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"

fred54
Berichten: 4
Lid geworden op: 08 jan 2019, 19:11

Re: ipadres DirectAdmin anders dan php ipadres?

Bericht door fred54 » 09 jan 2019, 13:50

(Reno)
Dank voor bericht.

Resterend:
Je schrijft: Ik maak uit jouw antwoord op dat DirectAdmin een fout IP-adres zou teruggeven.... dan ben ik niet duidelijk, ik bedoel het andersom: DA = correct, php = Niet correct.

Je stelt voor een script te maken met o.a. $_SERVER['REMOTE_ADDR']. Dat heeft geen zin... + heb ik reeds gedaan + in dat geval test ik met mijn eigen pc of mobiel en dan krijg ik van php een correct ip-adres (gelijk aan DA). Ook als ik via "vreemde" pc of mobiel of wifi php script benader, dan is het ip-adres het adres van die "vreemde" en zijn DA-ip-adres en php-ip-adres gelijk.... dus beiden "congruent".

Check:
Je vraag het ip adres te controleren via http://www.watismijnip.nl/ ... Deze website is mij bekend. Mijn ip-adres klopt met het adres dat php teruggeeft via $_SERVER['REMOTE_ADDR'].

Situatie duidelijker:
Betreft Contact formulier:
1) php script wordt opgeroepen
2) DA-log:
192.171.255.52 - - [08/Jan/2019:14:01:08 +0100] "GET /Contact.php HTTP/1.0" 200 15250 "https://www.MijnWebSite.nl/Contact.php" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36"
3) php script wordt verzonden (POST)
4) DA-log:
192.171.255.52 - - [08/Jan/2019:14:01:10 +0100] "POST /Contact.php HTTP/1.0" 200 15754 "https://www.MijnWebSite.nl/Contact.php" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36"
5) php script checkt HTML tekstvelden en ziet dat er iets niet klopt (rommel ingevuld):
6) php script logt tijd + ip-adres + betreffende tekst:
08-Jan-2019-14:01:10 ~ ip80.qq.xxx.yyy ~ input=bla bla rommeltekst.....link:blabla..........etc....END
7) merk op dat het ip-adres nu verschilt (80.qq.xxx.yyy is mijn adres)

8] vul ik het formulier in bij "de buurman of elders" dan zijn de ip-adressen gelijk(DA = php) + correct, dwz overeenkomstig aan het adres van de betreffende buurman etc.
9) alleen als "iemand" sex gerelateerde (of andere rommel) invult gaat het mis (adressen niet gelijk + mijn aders verschijnt bij php $_SERVER['REMOTE_ADDR'])

.........ik blijf toch nieuwsgierig hoe dit kan.......er moet een relatie liggen met mijn ip-adres + het contactformulier (in feite twee niet verbonden zaken, die opeens iets met elkaar hebben) :?:

en:
Ik ga aan de slag met: reCaptcha van Google :D

Reno
Berichten: 118
Lid geworden op: 22 jan 2010, 18:25

Re: ipadres DirectAdmin anders dan php ipadres?

Bericht door Reno » 09 jan 2019, 19:59

Okee, ik denk dat ik 'm nu snap :P. Neemt niet weg dat het nog steeds een vreemd verhaal is, inderdaad.

Dan zal er toch ergens een regel code iets in de war gooien in je script... Zeker dat je het IP-adres niet door een of andere (rare) filter gooit en hij een IPv6 adres ofzo gebruikt?

reCaptcha zal in ieder geval toch wel minstens 95% van de spammers en bad-guys filteren.

fred54
Berichten: 4
Lid geworden op: 08 jan 2019, 19:11

Re: ipadres DirectAdmin anders dan php ipadres?

Bericht door fred54 » 13 jan 2019, 08:12

@reno

Ik moet me verontschuldigen....
Het probleem zat in een php sub-script (ergens ver weg...) met daarin een if-statement. In de vergelijking wordt 1 "=" teken gebruikt in plaats van 2 "==" tekens gebruikt.
Dus er vindt geen vergelijking plaats, maar een waarde overdracht.

....soms heb ik een extra bril nodig, ha ha.

Reno
Berichten: 118
Lid geworden op: 22 jan 2010, 18:25

Re: ipadres DirectAdmin anders dan php ipadres?

Bericht door Reno » 14 jan 2019, 22:54

Fijn om te horen dat het je uiteindelijk toch gelukt is. Dit verklaart een hoop haha.

Thanks voor het terugkoppelen overigens, ik was zeer benieuwd wat de oorzaak hiervan was :-)

Plaats reactie