Я хочу зашифрувати URL-адресу:
SELECT name FROM user WHERE uid = me()
Чи потрібно завантажити модуль для цього? У мене вже є модуль запиту.
Я хочу зашифрувати URL-адресу:
SELECT name FROM user WHERE uid = me()
Чи потрібно завантажити модуль для цього? У мене вже є модуль запиту.
Відповіді:
Ви можете використовувати JavaScript encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
так розшифровується закодований URI. Ласкаво просимо.
Вбудований модуль querystring
- це те, що ви шукаєте:
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()'
Використовуйте escape
функцію querystring
. Він створює безпечну рядок для 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()
(у відповіді Ніколя), схоже, зараз повертає порожню рядок.
querystring.escape()
Метод використовується, querystring.stringify()
і, як правило, не застосовується безпосередньо."
Зауважте, що кодування URI добре для частини запиту, це не добре для домену. Домен кодується за допомогою punycode. Вам потрібна бібліотека на зразок URI.jsДля перетворення між URI та IRI (Інтернаціоналізований ідентифікатор ресурсу)
Це правильно, якщо ви плануєте використовувати рядок пізніше як рядок запиту:
> encodeURIComponent("http://examplé.org/rosé?rosé=rosé")
'http%3A%2F%2Fexampl%C3%A9.org%2Fros%C3%A9%3Fros%C3%A9%3Dros%C3%A9'
Якщо ви не хочете, щоб символи ASCII були такими /
, як :
і ?
втечі, скористайтеся ними encodeURI
:
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
Однак для інших випадків використання вам може знадобитися 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 (рядок) зробить це:
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
Хоча передача SQL навколо рядка запиту може бути не гарним планом,