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

标签 javascript php

我的场景如下所示,我在屏幕上显示数据库分页网格。 我想添加一个按钮来下载 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/

相关文章:

php - CodeIgniter 从传递单行到传递多行

javascript - 将对象作为 POST 变量从 jquery 传递到 php

php - 如何在 WampServer 中将 PHP 5.5.12 升级到 5.6.12

javascript - 如何检查 DiscordJS V13 中是否有人在语音 channel 中?

javascript - 填充最后一个输入时 JQuery ajax 调用失败

javascript - 调试 Angular 的摘要周期 : How to find the cause of an infinite loop?

php - MYSQL 获取列

php - 框架头脑 Storm

javascript - document.vulnerable 是做什么的?

javascript - Highcharts : Adding flags to a line chart