Avatar billede loukas Mester
18. april 2007 - 10:58 Der er 12 kommentarer og
1 løsning

Skjule post eller get

Hej,
Jeg skal lave en formular til at sende SMS til en SMS-gateway.

Her er lidt forklaring til Gatewayens API:
To send an SMS you must submit an HTTP POST or HTTP GET request to http://www.cpsms.dk/sms/
The following keys and values can be passed to the above URL.
username (string)    Specify the username to your SMS account 
password (string)    Specify the password to your SMS account

Problemet er at hvis jeg bare laver type="hidden" kan man bare snuppe mit Password og username til gatewayen og bruge løs.

Altså hvordan laver jeg en POST eller GET med username og Password uden det akn ses af brugeren??
Avatar billede cpufan Juniormester
18. april 2007 - 11:07 #1
med frameset OG redirects

formularen redirectes uden pass/uid til ny side

nyside kobler uid og pass på,
og poster videre med GET.

begge dele kører i frames.
Avatar billede cwboy Nybegynder
18. april 2007 - 11:12 #2
Med et program som fx. Fiddler kan du nemt komme til at se password og brugernavn med cpufan's metode.

Måden at gøre det på, er at poste til en ASP-side du selv laver. Denne ASP-side laver så kaldet til din SMS gateway.

Se eksempel på, hvordan du laver posts fra ASP under "Posting Data":
http://www.4guysfromrolla.com/webtech/110100-1.2.shtml

I nedenstående eksempel bytter du URL'en ud med "http://www.cpsms.dk/sms/" og sætter selv din POST-data ind i linjen med xml.Send

Dermed er det kun kodedelen af ASP-siden der ser dit brugernavn og kodeord. Brugeren ser aldrig, hvad der reelt sker - og kan heller ikke umiddelbart opsnappe det uden at hacke sig ind på webserveren.


Citat:
<%
  Response.Buffer = True
  Dim objXMLHTTP, xml
  Set xml = Server.CreateObject("Microsoft.XMLHTTP")
   
  ' Notice the two changes in the next two lines:
  xml.Open "POST", "http://www.imdb.com/Find", False
  xml.Send "select=All&for=The Usual Suspects"
   
  Response.Write xml.responseText

  Set xml = Nothing
%>
Avatar billede loukas Mester
18. april 2007 - 11:16 #3
hmmm, det var også min første tanke at lave noget i den her stil:
Response.Redirect("http://www.cpsms.dk/sms/?username=mitbrugernavn&password=DetSkriverJegIkke"),
men hvis jeg slutter af med GET, vil det hele jo komme til at stå i URL'en
Avatar billede loukas Mester
18. april 2007 - 11:22 #4
cwboy->
Ja det var noget jeg kan bruge.
Prøver mig lige lidt frem.
Avatar billede loukas Mester
18. april 2007 - 14:10 #5
Jeg kan ikke få det til at virke.
Alle variabler bliver skrevet ud som de skal med response.write,
men gatewayen siger aligvel: missing password or username.
Og så skriver den heller ikke noget ud med: Response.Write xml.responseText

Koden:
StrUsername =    "uhauha"
Strpassword =    "mitPassword"
StrRecipient =    Request.Form("recipient")
StrMessage =    Request.Form("message")
StrFrom =    Request.Form("from")

Response.Write StrUsername & " - username<br>"
Response.Write Strpassword & " - password<br>"
Response.Write StrRecipient & " - recipient<br>"
Response.Write StrMessage & " - message<br>"
Response.Write StrFrom & " - from<br>"

  Set xml = Server.CreateObject("Microsoft.XMLHTTP")
   
  xml.Open "GET", "http://www.cpsms.dk/sms/", False
  xml.Send "username="&StrUsername&"&password="&Strpassword&"&recipient="&StrRecipient&"&message="&StrMessage&"&from="&StrFrom&""

  Response.Write xml.responseText

  Set xml = Nothing
Avatar billede cwboy Nybegynder
18. april 2007 - 15:36 #6
Det er fordi xml.Send sender data til POST - så du skal skifte GET ud med POST.
Avatar billede loukas Mester
18. april 2007 - 17:44 #7
ja, men det er det samme med POST

xml.Open "POST", "http://www.cpsms.dk/sms/", False
xml.Send "username="&StrUsername&"&password="&Strpassword&"&recipient="&StrRecipient&"&message="&StrMessage&"&from="&StrFrom&""

  Response.Write xml.responseText
Avatar billede erikjacobsen Ekspert
18. april 2007 - 17:48 #8
Avatar billede loukas Mester
18. april 2007 - 17:56 #9
erikjacobsen->
prøver lige
Avatar billede loukas Mester
18. april 2007 - 18:00 #10
Det var løsningen.
Hvis du smider et svar ericjacobsen.
Så splitter jeg points
Avatar billede erikjacobsen Ekspert
18. april 2007 - 18:06 #11
Jeg samler slet ikke på point,tak. Men det er ikke fordi *skal* bruge en GET - det var kluntet formuleret af mig. Det er mere: hvis du vil bruge GET skal det være på den måde.
Og så er det nemt at test af direkte i en browser.

Generelt vil jeg anbefale dig at få POST til at virke. Så vil dine login-oplysninger ikk e gemmes (så tit) i diverse logs undervejs. Det er bare lige: hvad er der så i vejen ;)
Avatar billede erikjacobsen Ekspert
18. april 2007 - 18:10 #12
Måske skal du lave en URL-encode på alle parametre, for at få POST til at virke.

StrRecipient =    server.urlencode(Request.Form("recipient"))

(osv) - men det vil kun gøre en forskel hvis der er "giftige" tegn i.
Avatar billede loukas Mester
19. april 2007 - 14:01 #13
Jeg siger tusind tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester