在 PHP 中,我们有 santize 来确保 String 是安全的 Java 的相似之处是什么

问题描述

PHP 中,我们有 santize 以确保 String 是安全的。 Java 有什么类似的东西。 我知道 PreparedStatement 。但这对我的项目没有帮助。 是否有一些东西只检查 String 中的字母。

query = "SELECT  Bill_No,No,Item,Count,Rate,GST,Net,Date,Time,Manager FROM bill WHERE Manager = '"+Manager_str+"';  ";
//This is definitely insecure

解决方法

Character 类有一个方法 isAlphabetic,您可以通过循环输入字符串中的字符来使用它。

for(char c : query.toCharArray()) {
    if(!Character.isAlphabetic(c)) {
        return false;
    }
}
return true;

如果您使用的是 Java 8 或更高版本,则可以使用流:

return query.chars().allMatch(Character::isAlphabetic);
,

试试这个。

public static void main(String args[]) {
    String str="sadahkk";
    System.out.println("str :"+str +",isAlphabetsOnly:"+isAlphabetsOnly(str));
    str="";
    System.out.println("str :"+str +",isAlphabetsOnly:"+isAlphabetsOnly(str));
    str="sada5hkk";
    System.out.println("str :"+str +",isAlphabetsOnly:"+isAlphabetsOnly(str));
    str="<alert>";
    System.out.println("str :"+str +",isAlphabetsOnly:"+isAlphabetsOnly(str));
    str="-- sadahkk";
    System.out.println("str :"+str +",isAlphabetsOnly:"+isAlphabetsOnly(str));
    str="@fgfg";
    System.out.println("str :"+str +",isAlphabetsOnly:"+isAlphabetsOnly(str));

}
public static boolean isAlphabetsOnly(String str ) {
    return ((!str.equals(""))
            && (str != null)
            && (str.matches("^[a-zA-Z]*$")));
}

================================================ ========

输出如下

str :sadahkk,isAlphabetsOnly:true

str :,isAlphabetsOnly:false

str :sada5hkk,isAlphabetsOnly:false

str :,isAlphabetsOnly:false

str :-- sadahkk,isAlphabetsOnly:false

str :@fgfg,isAlphabetsOnly:false