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

    0

    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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    public static LanguageLevel fromPythonVersion(@Nullable String pythonVersion) {
        if (pythonVersion == null) return null;
    
        if (pythonVersion.startsWith("2")) {
          if (pythonVersion.startsWith("2.4")) {
            return PYTHON24;
          }
          if (pythonVersion.startsWith("2.5")) {
            return PYTHON25;
          }
          if (pythonVersion.startsWith("2.6")) {
            return PYTHON26;
          }
          if (pythonVersion.startsWith("2.7")) {
            return PYTHON27;
          }
          return DEFAULT2;
        }
        if (pythonVersion.startsWith("3")) {
          if (pythonVersion.startsWith("3.0")) {
            return PYTHON30;
          }
          if (pythonVersion.startsWith("3.1.") || pythonVersion.equals("3.1")) {
            return PYTHON31;
          }
          if (pythonVersion.startsWith("3.2")) {
            return PYTHON32;
          }
          if (pythonVersion.startsWith("3.3")) {
            return PYTHON33;
          }
          if (pythonVersion.startsWith("3.4")) {
            return PYTHON34;
          }
          if (pythonVersion.startsWith("3.5")) {
            return PYTHON35;
          }
          if (pythonVersion.startsWith("3.6")) {
            return PYTHON36;
          }
          if (pythonVersion.startsWith("3.7")) {
            return PYTHON37;
          }
          if (pythonVersion.startsWith("3.8")) {
            return PYTHON38;
          }
          if (pythonVersion.startsWith("3.9")) {
            return PYTHON39;
          }
          if (pythonVersion.startsWith("3.10")) {
            return PYTHON310;
          }
          if (pythonVersion.startsWith("3.11")) {
            return PYTHON311;
          }
          return DEFAULT3;
        }
        return getDefault();
      }

    https://github.com/JetBrains/intellij-community/blob/07cef3c4397f026a5f7aa26e783b0bf7dfee5ab2/python/python-psi-api/src/com/jetbrains/python/psi/LanguageLevel.java#L125

    DypHuu_niBEHb, 05 Октября 2022

    Комментарии (9)
  2. Java / Говнокод #28399

    −10

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public static String padRight(String s, int n) {
         return String.format("%-" + n + "s", s);  
    }
    
    public static String padLeft(String s, int n) {
        return String.format("%" + n + "s", s);  
    }

    How can I pad a String in Java?
    https://stackoverflow.com/questions/388461/how-can-i-pad-a-string-in-java/391978

    Все ответы восхитительны в своей коричневости.

    ISO, 05 Октября 2022

    Комментарии (20)
  3. Java / Говнокод #28305

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    import java.security.*
    
    var keys = KeyPairGenerator.getInstance("EC").generateKeyPair();
    var blankSignature = new byte[64]; // zero bytes
    var sig = Signature.getInstance("SHA256WithECDSAInP1363Format");
    sig.initVerify(keys.getPublic());
    sig.update("Hello, World".getBytes()); // anything
    sig.verify(blankSignature); // true

    Сказка о том, как джавушки переписали код с небезопасного языка на безопасный и помножили проверку подписей на ноль (в прямом смысле).

    https://neilmadden.blog/2022/04/19/psychic-signatures-in-java/

    bormand, 31 Июля 2022

    Комментарии (35)
  4. Java / Говнокод #28297

    0

    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
    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.println("How many characters will be in the password? (1-256):");
                short length = scanner.nextShort();
                if (length > 256) {
                    System.out.println("Password can't be longer than 256 characters!");
                } else if (length < 1) {
                    System.out.println("Password can't be less than 1 character long!");
                } else {
                    System.out.println("How many passwords will be generated? (1-32)");
                    byte amount = scanner.nextByte();
                    if (amount > 32) {
                        System.out.println("You can't generate more than 32 passwords!");
                    } else if (amount < 1) {
                        System.out.println("You can't generate less than 1 password!");
                    } else {
                        for (byte i = 0; i < amount; i++) {
                            System.out.println("\n" + PasswordGenerator.generate(length));
                        }
                    }
                }
            } catch (InputMismatchException e) {
                System.out.println("Input error!");
            }
        }
    }

    cringe

    zxc254363, 27 Июля 2022

    Комментарии (0)
  5. Java / Говнокод #28278

    0

    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
    private void calculateOverallTime() {
        if (overallTimeTimer.isTimeOut()) {
            if (overallTime[0] <= 58) {
                overallTime[0] += 1;
            }
            else {
                overallTime[0] = 0;
                if (overallTime[1] <= 58) {
                    overallTime[1] += 1;
                }
                else {
                    overallTime[1] = 0;
                    overallTime[2] += 1;
                }
            }
        }
    }

    reboober, 14 Июля 2022

    Комментарии (9)
  6. Java / Говнокод #28165

    −1

    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
    package com.company;
    import java.util.Scanner;
    
    public class Main {
        public static void main (String [] args) {
             Scanner num = new Scanner(System.in);
             int first;
             System.out.print("Enter first num: ");
             first = num.nextInt();
    
             if (first==10)
                  System.out.print("Num is 10");
    }
    }

    zdavletshin, 12 Мая 2022

    Комментарии (2)
  7. Java / Говнокод #28142

    0

    1. 1
    public static final String EMPTY = "";

    Tan seme? Tan seme?!!

    Stallman, 28 Апреля 2022

    Комментарии (16)
  8. Java / Говнокод #28118

    +1

    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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    public class Spot {
        private Piece piece;
        private int x;
        private int y;
      
        public Spot(int x, int y, Piece piece)
        {
            this.setPiece(piece);
            this.setX(x);
            this.setY(y);
        }
      
    
        public Piece getPiece() // метод возвращает объект фигуру
        {
            return this.piece;
        }
      
        public void setPiece(Piece p)
        {
            this.piece = p;
        }
      
        public int getX()
        {
            return this.x;
        }
      
        public void setX(int x)
        {
            this.x = x;
        }
      
        public int getY()
        {
            return this.y;
        }
      
        public void setY(int y)
        {
            this.y = y;
        }
    }

    Дизайн шахматной игры
    Эти виды вопросов задаются на интервью, чтобы судить о навыке объектно ориентированного дизайна кандидата. Итак, прежде всего, мы должны подумать о классах.
    https://habr.com/ru/post/660003/

    ISO, 10 Апреля 2022

    Комментарии (75)
  9. Java / Говнокод #28107

    0

    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
    import org.springframework.core.Ordered;
       import org.springframework.core.annotation.Order;
       import org.springframework.web.bind.WebDataBinder;
       import org.springframework.web.bind.annotation.ControllerAdvice;
       import org.springframework.web.bind.annotation.InitBinder;
    
       @ControllerAdvice
       @Order(10000)
       public class BinderControllerAdvice {
          @InitBinder
          public void setAllowedFields(WebDataBinder dataBinder) {
    
              String[] denylist = new String[]{"class.", "Class.", ".class.", ".Class."};
    
              dataBinder.setDisallowedFields(denylist);
          }
       }

    Критическая 0-day уязвимость в Spring Framework, применяемом во многих Java-проектах

    Работа эксплоита сводится к отправке запроса с параметрами "class.module.classLoader.resources.cont ext.parent.pipeline.first.*", обработка которых при использовании "WebappClassLoaderBase" приводит к обращению к классу AccessLogValve. Указанный класс позволяет настроить логгер для создания произвольного jsp-файла в корневом окружении Apache Tomcat и записи в этот файл указанного атакующим кода. Созданный файл становится доступным для прямых запросов и может использоваться в качестве web shell. Для атаки на уязвимое приложение в окружении Apache Tomcat достаточно отправить запрос с определёнными параметрами при помощи утилиты curl.

    curl -v -d "class.module.classLoader.resources.context.parent.pipeline
    .first.pattern=код_для_вставки_в_файл
    &class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
    &class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
    &class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar
    &class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat="
    http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-SNAPSHOT/rapid7

    3_dar, 04 Апреля 2022

    Комментарии (4)
  10. Java / Говнокод #28064

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    boolean isEven(int number) {
        while (number > 2) {
            number = number - 2;
        }
        if (number == 2) {
            return true;
        } else {
            return false;
        }
    }

    Мистер Хэнки, 28 Февраля 2022

    Комментарии (7)