#php #node.js #curl #request
#php #node.js #curl #запрос
Вопрос:
У меня есть следующий php-код:
//Create url
$url = "https://pci.zcredit.co.il/WebControl/RequestToken.aspx";
$post = "TerminalNumber=$TerminalNumber"
."amp;Username=$UserNameamp;PaymentSum=$PaymentSumamp;PaymentsNumber=$PaymentsNumberamp;Lang=$Lang"
."amp;Currency=$Currencyamp;UniqueID=$UniqueIDamp;ItemDescription=$ItemDescriptionamp;ItemQtty=$ItemQtty"
."amp;ItemPicture=$ItemPictureamp;RedirectLink=$RedirectLinkamp;NotifyLink=$NotifyLink"
."amp;UsePaymentsRange=$UsePaymentsRangeamp;ShowHolderID=$ShowHolderIDamp;AuthorizeOnly=$AuthorizeOnly"
."amp;HideCustomer=$HideCustomeramp;CustomerName=$CustomerNameamp;CssType=$CssTypeamp;IsCssResponsive=$IsCssResponsive";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // Create the request url
curl_setopt($ch, CURLOPT_POSTFIELDS,$post); //Set post value
curl_setopt($ch, CURLOPT_POST, 1); // Set the request method to POST
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Not return data in brower
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$page = curl_exec($ch); // Get the response
Который я пытаюсь использовать в node js с запросом:
let url = "https://pci.zcredit.co.il/WebControl/RequestToken.aspx";
let post = `TerminalNumber=${TerminalNumber}`
`amp;Username=${UserName}amp;PaymentSum=${PaymentSum}amp;PaymentsNumber=${PaymentsNumber}amp;Lang=${Lang}`
`amp;Currency=${Currency}amp;UniqueID=${UniqueID}amp;ItemDescription=${ItemDescription}amp;ItemQtty=${ItemQtty}`
`amp;ItemPicture=${ItemPicture}amp;RedirectLink=${RedirectLink}amp;NotifyLink=${NotifyLink}`
`amp;UsePaymentsRange=${UsePaymentsRange}amp;ShowHolderID=${ShowHolderID}amp;AuthorizeOnly=${AuthorizeOnly}`
`amp;HideCustomer=${HideCustomer}amp;CustomerName=${CustomerName}amp;CssType=${CssType}amp;IsCssResponsive=${IsCssResponsive}`;
const request = require('request');
request(url '/' post, { json: true }, (err, res, body) => {
if (err) { return console.log(err); }
});
Но должен ли я просто добавить параметры post к исходному URL? Безопасно ли это?
Заранее спасибо!
Комментарии:
1. Это так же безопасно, как и в примере php, но добавление параметров к URL будет запросом GET. Если вы хотите «реальный» запрос post, вы должны добавить параметры в тело запроса. В любом случае, что касается безопасности, вы могли бы проверить значения параметров. Возможно, они могут содержать вредоносный код. Сервер должен проверить это в любом случае, но вы уже можете выполнить большую очистку и проверку своего кода.
Ответ №1:
Синтаксис для отправки форм в кодировке URL с запросом прост, поскольку:
request.post(url).form({ key: value })
Конечно, вы можете отправить запрос с параметрами в URL, используя переменные литералов шаблона, и это ничего не изменит с точки зрения безопасности, но он будет более читаемым.
Ваш код будет защищен, если вы очистите параметры и если вы используете шифрование (https), так же, как вы должны делать на любом языке, как main.c говорится в его комментарии.