Skip to content

Commit 7bd152a

Browse files
committed
Initial commit for XSS Sanitization.
1 parent a091691 commit 7bd152a

File tree

6 files changed

+32
-4
lines changed

6 files changed

+32
-4
lines changed

gwt-material/src/main/java/gwt/material/design/client/base/AbstractTextWidget.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@
2424
import com.google.gwt.editor.client.LeafValueEditor;
2525
import com.google.gwt.editor.ui.client.adapters.HasTextEditor;
2626
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
27+
import com.google.gwt.safehtml.shared.SimpleHtmlSanitizer;
2728
import com.google.gwt.user.client.ui.HasHTML;
2829

2930
/**
3031
* @author Ben Dol
3132
*/
33+
//TODO : Setting HasRawValue - break the sanitizer
3234
public abstract class AbstractTextWidget extends AbstractValueWidget<String> implements HasId, HasHTML,
3335
IsEditor<LeafValueEditor<String>> {
3436

@@ -40,11 +42,12 @@ protected AbstractTextWidget(Element element) {
4042

4143
@Override
4244
public String getValue() {
43-
return getElement().getInnerText();
45+
return SafeHtmlUtils.fromString(getElement().getInnerText()).asString();
4446
}
4547

4648
@Override
4749
public void setValue(String value, boolean fireEvents) {
50+
value = SafeHtmlUtils.fromString(value).asString();
4851
getElement().setInnerText(value);
4952
super.setValue(value, fireEvents);
5053
}

gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
import java.util.List;
4242

43+
//TODO: HasRawValue
4344
public abstract class AbstractValueWidget<V> extends MaterialWidget implements HasValue<V>, LeafValueEditor<V>,
4445
HasEditorErrors<V>, HasErrorHandler, HasError, HasValidators<V> {
4546

@@ -80,6 +81,9 @@ public void setValue(V value, boolean fireEvents, boolean reload) {
8081
}
8182
}
8283

84+
//TODO:
85+
//setSanitizer();
86+
8387
@Override
8488
public void setError(String error) {
8589
getErrorMixin().setError(error);

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBadge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public MaterialBadge(String text, Color textColor, Color bgColor) {
8484

8585
@Override
8686
public String getText() {
87-
return getElement().getInnerHTML();
87+
return SafeHtmlUtils.fromString(getElement().getInnerText()).asString();
8888
}
8989

9090
@Override

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialTitle.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,6 @@ public void setValue(String value, boolean fireEvents) {
112112

113113
@Override
114114
public String getValue() {
115-
return header.getElement().getInnerHTML();
115+
return SafeHtmlUtils.fromString(header.getElement().getInnerHTML()).asString();
116116
}
117117
}

gwt-material/src/main/java/gwt/material/design/client/ui/html/IFrame.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
/*
2+
* #%L
3+
* GwtMaterial
4+
* %%
5+
* Copyright (C) 2015 - 2018 GwtMaterialDesign
6+
* %%
7+
* Licensed under the Apache License, Version 2.0 (the "License");
8+
* you may not use this file except in compliance with the License.
9+
* You may obtain a copy of the License at
10+
*
11+
* http://www.apache.org/licenses/LICENSE-2.0
12+
*
13+
* Unless required by applicable law or agreed to in writing, software
14+
* distributed under the License is distributed on an "AS IS" BASIS,
15+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
* See the License for the specific language governing permissions and
17+
* limitations under the License.
18+
* #L%
19+
*/
120
package gwt.material.design.client.ui.html;
221

322
import com.google.gwt.dom.client.Document;

gwt-material/src/main/java/gwt/material/design/client/ui/html/Pre.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
*/
2222

2323
import com.google.gwt.dom.client.Document;
24+
import com.google.gwt.safehtml.shared.SafeHtml;
25+
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
2426
import gwt.material.design.client.base.AbstractTextWidget;
2527

2628
/**
@@ -39,6 +41,6 @@ public Pre(final String text) {
3941

4042
@Override
4143
public void setHTML(String html) {
42-
getElement().setInnerHTML(html);
44+
getElement().setInnerSafeHtml(SafeHtmlUtils.fromString(html));
4345
}
4446
}

0 commit comments

Comments
 (0)