Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [Java]HTTP response 400

Kaffir [06.03.2005 19:00:19]

#

Minulla on java ohjelma joka vaatii tunnistautumisen (authentication)
Authuser ja authpass sijoitetaan .ini fileen, josta ohjelma käynnistyessään lukee ne.
Mutta jos auth tai pass sisältää välilyöntejä tulee tämmöinen:

java.io.IOException: Server returned HTTP response code: 400 for URL: http://www
.sivunurl.com/auth.php?auth=nakke nakuttaja&password=jotain

Yritin tätä:

if(authorization.equals(" "))
{
System.out.println("- Cannot use spaces in auth!");
System.exit(0);
}

Millä sen voisi korjata?

ja tuo auth.php filu on:

<?php
    validateAuth();
    exit();
    function validateAuth() {
        $Registered = array(array("auth" => "public", "pass" => "auth"),

        );
        $outputString = '';
        $auth = addslashes(htmlspecialchars(urldecode(strtolower($_GET['auth']))));
        $pass = sha1(addslashes(htmlspecialchars(urldecode(strtolower($_GET['pass'])))));
        for($i = 0; $i < count($Registered); $i++) {
            if($Registered[$i]['auth'] == $auth && sha1($Registered[$i]['pass']) == $pass) {
                echo("Vald auth");
                exit();
                break;
             }
        }
        echo("Auth invalid");
        exit();
    }
?>

Jos tuon kenties voisi jotenkin korjata php filusta käsin?
Tiedän että se toimi näin: nakke%20nakuttaja mutta kaikki eivät tuota käytä, ja jos ei käytä tuota tyyliä niin ohjelma päästää läpi vaikka auth ja pass olisi väärin.

FooBat [07.03.2005 00:44:05]

#

Luo tarvittavat tiedot tiedostosta ja korvaa kaikki muuttujissa olevat erikoismerkit vastaavalla url enconding numerokoodilla. Tämä on tosiaan ohjelmoijan tehtävä eikä sitä pidäkään olettaa käyttäjän tekevän. Tämä pitää tehdä lähettäjän päässä, php:llä se on jo liian myöhäistä.

En muista oliko javassa joku valmis funtio tuohon urlencodin korvaukseen, mutta helpostihan tuollaisen tekee itsekin. Korvattavia merkkejä on vain pari kymmentä.
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta