Javascript 如何防止xss代码?
我已经转义了我的字段,但是当我生成一个xss代码,比如Javascript 如何防止xss代码?,javascript,php,jquery,Javascript,Php,Jquery,我已经转义了我的字段,但是当我生成一个xss代码,比如警报(一帧)然后是专门用于显示xss代码发送到我的数据库的日期的表。我希望当我自己编写xss代码时,不要将JS脚本发送到我的数据库 $code = trim(stripslashes(htmlspecialchars($_POST['code']))); $product = trim(stripslashes(htmlspecialchars($_POST['product'])));
警报(一帧)
然后是专门用于显示xss代码发送到我的数据库的日期的表。我希望当我自己编写xss代码时,不要将JS脚本发送到我的数据库
$code = trim(stripslashes(htmlspecialchars($_POST['code'])));
$product = trim(stripslashes(htmlspecialchars($_POST['product'])));
$result = new sale();
$sale_type = $result->getTypeSaleById($_POST['sale_type']);
$purchase_price = trim(stripslashes(htmlspecialchars($_POST['purchase_price'])));
$sale_price = trim(stripslashes(htmlspecialchars($_POST['sale_price'])));
$min_stock = trim(stripslashes(htmlspecialchars($_POST['min_stock'])));
$stock = trim(stripslashes(htmlspecialchars($_POST['max_stock'])));
我的控制器
case 'add_product':
if(isset($_POST['code']) && $_POST['code']!= '' && isset($_POST['product']) && $_POST['product']!= '' && isset($_POST['sale_type']) && $_POST['sale_type']!= '' && isset($_POST['purchase_price']) && $_POST['purchase_price']!= 0 && isset($_POST['sale_price']) && $_POST['sale_price']!= 0 && isset($_POST['min_stock']) && $_POST['min_stock']!= '' && isset($_POST['max_stock']) && $_POST['max_stock']!= '' ){
$code = trim(stripslashes(htmlspecialchars($_POST['code'])));
$product = trim(stripslashes(htmlspecialchars($_POST['product'])));
$result = new sale();
$sale_type = $result->getTypeSaleById($_POST['sale_type']);
$purchase_price = trim(stripslashes(htmlspecialchars($_POST['purchase_price'])));
$sale_price = trim(stripslashes(htmlspecialchars($_POST['sale_price'])));
$min_stock = trim(stripslashes(htmlspecialchars($_POST['min_stock'])));
$stock = trim(stripslashes(htmlspecialchars($_POST['max_stock'])));
$newProduct = new product();
if($newProduct->add($code,$product,$sale_type,$purchase_price,$sale_price,$min_stock,$stock)){
echo "success";
}else{
echo "it cannot be added";
}
}
else{
echo "something went wrong";
}
break;
我的javascript函数
function addProduct(){
var code = $('#code').val();
var product = $('#product').val();
var sale_type = $('#sale_type').val();
var purchase_price = $('#purchase_price').val();
var sale_price = $('#sale_price').val();
var min_stock = $('#min_stock').val();
var max_stock = $('#max_stock').val();
var valCheck = verificar();
if(valCheck == true){
$.ajax({
url: '../controller/product_controller.php',
type: 'POST',
data: 'code='+code+'&product='+product+'&sale_type='+sale_type+'&purchase_price='+purchase_price+'&sale_price='+sale_price+'&min_stock='+min_stock+'&max_stock='+max_stock+'&boton=add_product',
}).done(function(ans){
if(ans == 'success'){
$('#code,#product,#purchase_price,#sale_price').val("");
$('#sale_type').val('0');
$('#min_stock,#max_stock').val('0');
$('#success').show().delay(2000).fadeOut();
searchProduct('','1');
}else{
alert(ans);
}
})
}
else {
}
}
显示数据库数据时,请使用函数。不要这样。将用户输入连接到HTML或Javascript时,需要调用正确的转义方法。这可能很有用。另外,如果您在数据库查询中使用预处理语句,则不应剥离斜杠。{$variable}<这是预处理语句的一种方式吗?因为有些人说不是,但不管怎样,当有人想要我的xss代码不发送到我的数据库时,我怎么能修改我的代码呢。希望到现在为止,您正在使用mysqli或更好的PDO。请阅读这篇文章,它对准备好的语句给出了很好的解释。我有htmlspecialchars(),但我不想让我的xss代码出现在表数据中,比如:id=iframe。在这种情况下,您希望它在数据库中看起来如何?您甚至可以在保存到数据库时使用HTMLSpecialTites()或htmlspecialchars(),但通常不建议这样做!