Tôi muốn mã hóa URL này:
SELECT name FROM user WHERE uid = me()
Tôi có phải tải xuống một mô-đun cho điều này? Tôi đã có mô-đun yêu cầu.
Tôi muốn mã hóa URL này:
SELECT name FROM user WHERE uid = me()
Tôi có phải tải xuống một mô-đun cho điều này? Tôi đã có mô-đun yêu cầu.
Câu trả lời:
Bạn có thể sử dụng JavaScript encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
là cách bạn giải mã URI được mã hóa. Không có gì.
Mô-đun tích hợp querystring
là những gì bạn đang tìm kiếm:
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()'
Sử dụng escape
chức năng của querystring
. Nó tạo ra một chuỗi an toàn URL.
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()
(trong câu trả lời của Nicolas) dường như trả về một chuỗi trống bây giờ.
querystring.escape()
Phương thức này được sử dụng bởi querystring.stringify()
và thường không được dự kiến sẽ được sử dụng trực tiếp."
Lưu ý rằng mã hóa URI tốt cho phần truy vấn, nó không tốt cho miền. Tên miền được mã hóa bằng cách sử dụng Punycode. Bạn cần một thư viện như URI.js để chuyển đổi giữa URI và IRI (Mã định danh tài nguyên quốc tế).
Điều này đúng nếu bạn dự định sử dụng chuỗi sau này dưới dạng chuỗi truy vấn:
> encodeURIComponent("http://examplé.org/rosé?rosé=rosé")
'http%3A%2F%2Fexampl%C3%A9.org%2Fros%C3%A9%3Fros%C3%A9%3Dros%C3%A9'
Nếu bạn không muốn ký tự ASCII thích /
, :
và ?
để được thoát, sử dụng encodeURI
thay vì:
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
Tuy nhiên, đối với các trường hợp sử dụng khác, bạn có thể cần uri-js thay thế:
> 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 (chuỗi) sẽ làm điều đó:
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
Truyền SQL xung quanh trong một chuỗi truy vấn có thể không phải là một kế hoạch tốt,