gpt4 book ai didi

javascript - 安全地将敏感数据从 PHP 传递到 javascript

转载 作者:行者123 更新时间:2023-11-30 16:36:13 26 4
gpt4 key购买 nike

我的场景如下所示,我在屏幕上显示数据库分页网格。我想添加一个按钮来下载 CSV 电子表格。所以我编写了这样的代码:

$(function(){

var file_complete = false;
var final_sql = $('.initiate_download').val();
var orderby = $('#search_submit').data('orderby');


var $posturl = $url + "index.php/Spawner/launch_spawner";


$('#downloadModal').modal('hide');

$('.initiate_download').on("click", function(e) {
e.preventDefault();

$('#pleaseWait').html($html);

setTimeout(function() {
$.ajax({ // initiate download
url: $posturl,
type: "POST",
data: {
final_sql: final_sql,
orderby: orderby,
report: $report
},
success: function(data) {
var download_id = data;
// console.log(download_id);
check_download_status(download_id);
}
})
}, 2000);
})
});
	<div class="row top-buffer">   

<button id="search_submit" class="btn btn-primary initiate_download" type="submit" value="<?php echo $sql; ?>" data-orderby="<?php echo $orderby;?>" name="final_sql_lic" >Download List</button>

<span id="pleaseWait"> </span>

</div>

它工作正常,但问题是您可以使用查看页面选项查看 SQL,是否有解决方法?

最佳答案

大多数人所做的是他们不在页面上嵌入 SQL,而是公开在幕后处理 SQL 内容的 URL。

在您的示例中,您可以创建如下页面:http://website.com/api/csv?select=col1,col2,col3&orderBy=someColumn&where=someCondition

然后您的 php 将采用这些参数并根据这些参数生成 sql 并运行查询。确保安全地处理输入以避免 SQL 注入(inject)(参见 http://bobby-tables.com/php.html)。

您当前情况的问题在于,查看您的源代码的人会清楚地看到您将 SQL 直接传递到您的服务器,这意味着他们可以生成自己的 SQL,例如:DROP TABLE table1, table2; 或更糟。

关于javascript - 安全地将敏感数据从 PHP 传递到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com