-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathhomework
124 lines (80 loc) · 1.65 KB
/
homework
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package inputSanitation;
import java.util.ArrayList;
public class sanitizer {
public void isSafe(String s) {
s = s.toLowerCase();
if(sqlCheck(s) || unbalancedQuote(s)) {
System.out.print("No");
}
}
public boolean balancedPar(String string) {
Stack s = new Stack();
char[] splitted = string.toCharArray();
char[] paren;
boolean balanced = true;
int index = 0;
while(index < splitted.length && balanced) {
}
return false;
}
private char[] paren(char[] string) {
char[] paren;
for(char c:string) {
//if // I am here
}
return null;
}
public boolean sqlCheck(String s) {
String[] splitted = s.split("\\s+");
boolean isSelect = false;
boolean isWhere = false;
for(String c:splitted) {
if(c.equals("select")) {
isSelect = true;
}
if(c.equals("where")) {
isWhere = true;
}
}
if(isSelect == true && isWhere == true) {
//System.out.print("contains sql");
return true;
}
return false;
}
public boolean unbalancedQuote(String s) {
char[] splitted = s.toCharArray();
int counter1=0;
int counter2=0;
for(char c:splitted) {
if(c == '\'') {
counter1++;
}
else if(c == '"') {
counter2++;
}
}
if(counter1%2==0 && counter2%2==0) {
return false;
}
return true;
}
}
class Stack {
ArrayList<Character> items;
public Stack() {
items = new ArrayList<Character>();
}
public void push(char c) {
items.add(c);
}
public char pop() {
return items.remove(items.size()-1);
}
public boolean isEmpty() {
if(items.size()==0) {
return true;
}
return false;
}
}