Chcę przekierować użytkownika ze strony internetowej na inną chronioną hasłem. Ponieważ użytkownik przychodzi na pierwszą stronę, skanując kod kreskowy za pomocą określonego terminala (pomyśl o nim jak o smartfonie z dostosowaną aplikacją czytnika kodów kreskowych, która dodaje kilka danych (użytkownika i hasło) do wyjścia).

Przykład: użytkownik skanuje kod kreskowy wskazujący na https://www.acme.com/redir.html aplikacja dodaje użytkownika i hasło oraz przekierowuje użytkownika na odpowiednią stronę: https: //bob:redpaRrot93@www.acme.com/redir.html

Chcę przenieść boba i redpRrot93 na stronę, na której przekierowuje redir, na przykład: https: //bob:redpaRrot93@zeta.com/pages/destination.html

Właściwie przetestowałem ten kod i teraz działa:

<script>
    function redirectToContent(){
            if (location.protocol == "https:"){
                window.location='https\x3A\x2F\x2Fspock:vorreivolare53@www.micron-engineering.gq/ppages/404.html';
            }
            else {
                window.location='http\x3A\x2F\x2Fspock:vorreivolare53@www.micron-engineering.gq/ppages/404.html';
            }
    }
</script>

Ale nie znalazłem prostego sposobu na przekazanie użytkownika i hasła ze strony redir.

Oto zaktualizowany (działający) kod:

<script>
    function redirectToContent(){
            let username = "spock";
            let password = "vorreivolare53";
            // try using template string with backticks ``
            // window.location = `https://mywebsite/${username}/${password}`;               
            if (location.protocol == "https:"){
                window.location=`https\x3A\x2F\x2F${username}:${password}@www.micron-engineering.gq/ppages/404.html`;
            }
            else {
                window.location=`http\x3A\x2F\x2F${username}:${password}@www.micron-engineering.gq/ppages/404.html`;
            }
    }
</script>
0
Massimo Manca 19 listopad 2019, 17:08
2
Nie tylko wysyłasz nazwę użytkownika i hasło w postaci zwykłego tekstu, ale także obsługujesz zwykły protokół http, aby to zrobić. Moja sugestia: nie rób tego. Zawsze. Powinieneś przynajmniej zbudować żądanie wpisu. Lepiej byłoby uzyskać token uwierzytelniający i przekazać go stronie. Ponadto, jeśli planujesz mieć na stronach jakikolwiek baner (np. Reklamy Google itp.), Mogą one bardzo dobrze odczytać adres URL i wyciekać hasła w każdym miejscu.
 – 
ChatterOne
19 listopad 2019, 17:14
Na koniec usuwam wsparcie, że http służy tylko do testowania, również dane nie będą jasne, to tylko dla przykładu. Klient nie wymaga silnego poziomu ochrony, poprosił o maksymalną prostotę.
 – 
Massimo Manca
19 listopad 2019, 17:21
Właściwie chroniłem folder za pomocą pliku htpasswd, jak zwykle robią to dostawcy sieci Web na serwerach Linux i oczywiście hasło jest zaszyfrowane, ale jest również prawdą, że w tej sytuacji można wysłać użytkownika i hasło w postaci zwykłego tekstu, więc obowiązkowe jest używanie tylko https jako protokół. Ale w tej chwili testuję go w witrynie obsługującej protokół http (tylko do testowania).
 – 
Massimo Manca
19 listopad 2019, 17:26
1
Oto kolejna sugestia: całkowicie usuń nazwę użytkownika i hasło. To „maksymalna prostota”. Ale jeśli chcesz je zatrzymać, musisz zrobić to we właściwy sposób. Usuń również z pytania nazwę użytkownika, hasło ORAZ nazwę witryny internetowej.
 – 
ChatterOne
19 listopad 2019, 17:26
Nie martw się, to tylko strona testowa z danymi testowymi. Po zakończeniu testów nic nie pozostanie w tej witrynie. Nie jestem głupi.
 – 
Massimo Manca
19 listopad 2019, 19:56

1 odpowiedź

let username = "someUserName";
let password = "somePassword";

// try using template string with backticks ``
window.location = `https://mywebsite/${username}/${password}`;

/* 
This is the es6 JavaScript sintax which makes it A LOT easier to write strings containing variable values.
P.S. Notice that template string is writen with backtics (on keyboard it is located left of key 1), and not a single quotes ''
*/

Przeczytaj więcej na: https://developer.mozilla.org/en-US/ dokumenty/sieć/JavaScript/informacje/dosłowniki_szablonów

0
JozeV 19 listopad 2019, 17:33
OK, działa idealnie. Zaktualizowałem mój oryginalny post zaktualizowanym kodem po rozwiązaniu. Teraz muszę zabezpieczyć stronę przekierowującą, biorąc pod uwagę, że zawiera ona użytkownika i hasło, a wydaje się, że muszę wpisać zwykły tekst.
 – 
Massimo Manca
19 listopad 2019, 18:20
Teraz muszę chronić stronę przekierowującą, która osadza użytkownika i hasło w postaci zwykłego tekstu. Mogłem więc chronić folder pliku redir.html w ten sam sposób, używając innego użytkownika / hasła. Biorąc pod uwagę, że redir.html znajduje się w folderze niezwiązanym z witryną i do którego będzie można uzyskać dostęp za pomocą aplikacji na Androida (która osadza użytkownika / hasło) i że na koniec testów https będzie obowiązkowy, myślę, że może wystarczyć moja aplikacja kliencka. Teraz muszę zabezpieczyć stronę przekierowującą, biorąc pod uwagę, że zawiera ona użytkownika i hasło, a wydaje się, że muszę wpisać zwykły tekst.
 – 
Massimo Manca
19 listopad 2019, 18:30