簡體   English   中英

如何在 App Engine JDO 中防止 SQL 注入

[英]How to prevent SQL injection In App Engine JDO

請幫忙..

JDO INSERTION時如何防止SQL注入?

我的 JDO 類是 MyData.Java

package com.jdo;

import java.util.Date;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import javax.jdo.annotations.IdentityType;


@PersistenceCapable(identityType = IdentityType.APPLICATION,detachable="true")
public class MyData{
    @PrimaryKey
    @Persistent
    private String id;

    @Persistent
    private String name;

    @Persistent
    private String address;


    @Persistent
    private Date addedDate;

    /**
     * 
     * @param id
     * @param name
     * @param address
     */
    public MyData(String id,String name,String address) {
        super();
        this.id=id;
        this.name=name;
        this.address=address;
        this.addedDate = new Date();
    }


    /**
     * @return id
     */
    public String getId(){
        return this.id;
    }

    /**
     * 
     * @return name;
     */
    public String getname(){
        return this.name;
    }

    /**
     * 
     * @return addedDate
     */
    public Date getAddedDate(){
        return this.addedDate;
    }


    /**
     * 
     * @param id
     */
    public void setId(String id){
        this.id=id;
    }

    /**
     * 
     * @param name
     */
    public void setName(String name){
        this.name=name;
    }

    /**
     * 
     * @param addedDate
     */
    public void setaddedDate(Date addedDate){
        this.addedDate=addedDate;
    }


}

我嘗試插入使用

MyData user=new MyData ("id001","Shana","Address");                 
user=MyDataDAO.saveData(user);

它成功保存在表中..但我需要防止它被 SQL 注入...請幫忙?

當您通過將純文本字符串與 SQL 字符串連接起來創建查詢時,就會發生 SQL 注入。

您無需擔心,如果

  1. 您正在使用准備好的語句創建查詢(正確引用引擎蓋下的所有值,包括不受信任的值),或者
  2. 您正在使用一個很好的 ORM,它通過將對象字段插入到准備好的語句中來創建查詢,或者在將消息序列化到數據存儲時小心地正確轉義數據值。

上面的代碼看起來屬於第 2 類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM