Javascript 如何防止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代码发送到我的数据库的日期的表。我希望当我自己编写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(),但通常不建议这样做!