1. Java / Говнокод #3918

    +76

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    public static void setSQLSafeFormat(JFormattedTextField ftf){
        DefaultFormatter sqlSafeFormatter = new DefaultFormatter(){
            @Override
            public Object stringToValue(String string) throws ParseException {
                string = string.replaceAll("\'", "");
                return super.stringToValue(string);
            }
            @Override
            public String valueToString(Object value) throws ParseException {
                 String result = super.valueToString(value);
                 return result.replaceFirst("\'", "");
            }
        };
        sqlSafeFormatter.setOverwriteMode(false);
        ftf.setFormatterFactory(new DefaultFormatterFactory(sqlSafeFormatter));
    }
    public static void setSQLSafeFilter(JTextField txt){
        DocumentFilter dc = new DocumentFilter(){
            @Override
            public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
                if(!string.contains("'"))
                super.insertString(fb, offset, string, attr);
            }
            @Override
            public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
                if(!text.contains("'"))
                super.replace(fb, offset, length, text, attrs);
            }
        };
        AbstractDocument asb = (AbstractDocument)txt.getDocument();
        asb.setDocumentFilter(dc);
    }

    суровая борьба с sql injection

    Запостил: borka, 09 Августа 2010

    Комментарии (2) RSS

    Добавить комментарий