Ich möchte dies per URL verschlüsseln:
SELECT name FROM user WHERE uid = me()
Muss ich dafür ein Modul herunterladen? Ich habe bereits das Anforderungsmodul.
Ich möchte dies per URL verschlüsseln:
SELECT name FROM user WHERE uid = me()
Muss ich dafür ein Modul herunterladen? Ich habe bereits das Anforderungsmodul.
Antworten:
Sie können JavaScript verwenden encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
Sie den codierten URI. Bitte.
Das eingebaute Modul querystring
ist genau das, wonach Sie suchen:
var querystring = require("querystring");
var result = querystring.stringify({query: "SELECT name FROM user WHERE uid = me()"});
console.log(result);
#prints 'query=SELECT%20name%20FROM%20user%20WHERE%20uid%20%3D%20me()'
Verwenden Sie die escape
Funktion von querystring
. Es wird eine URL-sichere Zeichenfolge generiert.
var escaped_str = require('querystring').escape('Photo on 30-11-12 at 8.09 AM #2.jpg');
console.log(escaped_str);
// prints 'Photo%20on%2030-11-12%20at%208.09%20AM%20%232.jpg'
querystring.stringify()
(in Nicolas 'Antwort) scheinen jetzt eine leere Zeichenfolge zurückzugeben.
querystring.escape()
Methode wird von verwendet querystring.stringify()
und wird im Allgemeinen nicht direkt verwendet."
Beachten Sie, dass die URI-Codierung für den Abfrageteil gut ist, nicht für die Domäne. Die Domain wird mit Punycode verschlüsselt. Sie benötigen eine Bibliothek wie URI.js , um zwischen einem URI und einem IRI (Internationalized Resource Identifier) zu konvertieren.
Dies ist richtig, wenn Sie die Zeichenfolge später als Abfragezeichenfolge verwenden möchten:
> encodeURIComponent("http://examplé.org/rosé?rosé=rosé")
'http%3A%2F%2Fexampl%C3%A9.org%2Fros%C3%A9%3Fros%C3%A9%3Dros%C3%A9'
Wenn Sie ASCII - Zeichen nicht mögen wollen /
, :
und ?
zu entkommen werden, verwenden Sie encodeURI
stattdessen:
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
Für andere Anwendungsfälle benötigen Sie möglicherweise stattdessen uri-js :
> var URI = require("uri-js");
undefined
> URI.serialize(URI.parse("http://examplé.org/rosé?rosé=rosé"))
'http://xn--exampl-gva.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
encodeURIComponent (string) erledigt dies:
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
Das Weitergeben von SQL in einer Abfragezeichenfolge ist jedoch möglicherweise kein guter Plan.