Saya ingin URL menyandikan ini:
SELECT name FROM user WHERE uid = me()
Apakah saya harus mengunduh modul untuk ini? Saya sudah memiliki modul permintaan.
Saya ingin URL menyandikan ini:
SELECT name FROM user WHERE uid = me()
Apakah saya harus mengunduh modul untuk ini? Saya sudah memiliki modul permintaan.
Jawaban:
Anda dapat menggunakan JavaScript encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
adalah bagaimana Anda memecahkan kode URI yang disandikan. Sama-sama.
Modul bawaan querystring
adalah yang Anda cari:
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()'
Gunakan escape
fungsi querystring
. Ini menghasilkan string URL aman.
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()
(dalam jawaban Nicolas) tampaknya mengembalikan string kosong sekarang.
querystring.escape()
Metode ini digunakan oleh querystring.stringify()
dan umumnya tidak diharapkan untuk digunakan secara langsung."
Perhatikan bahwa pengkodean URI baik untuk bagian permintaan, itu tidak baik untuk domain. Domain akan disandikan menggunakan punycode. Anda memerlukan perpustakaan seperti URI.js untuk mengonversi antara URI dan IRI (Pengidentifikasi Sumber Daya Internasional).
Ini benar jika Anda berencana menggunakan string nanti sebagai string kueri:
> encodeURIComponent("http://examplé.org/rosé?rosé=rosé")
'http%3A%2F%2Fexampl%C3%A9.org%2Fros%C3%A9%3Fros%C3%A9%3Dros%C3%A9'
Jika Anda tidak ingin karakter ASCII suka /
, :
dan ?
ingin melarikan diri, gunakan encodeURI
:
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
Namun, untuk kasus penggunaan lainnya, Anda mungkin perlu uri-js sebagai gantinya:
> 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) akan melakukannya:
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
Melewati SQL di dalam string kueri mungkin bukan rencana yang baik,