XSS fix, books only shows title with out color atm...

This commit is contained in:
sava 2020-03-28 04:03:36 +01:00
parent 1d9e4fa598
commit 135e877fa8
6 changed files with 35 additions and 18 deletions

View File

@ -6,12 +6,11 @@ var list = function(user) {
.withConverter(bookConverter)
.get()
.then(function(query) {
html = '<br/>'
$('#books').html('<br/>')
query.forEach(function(doc) {
book = doc.data()
html += book.toHtml(user)
book.toHtml($('#books'))
})
$('#books').html(html)
}).catch(function(error) {
$('#books').html('<h3>Kunne ikke hente bøker!</h3><br/><p>'+error+'</p>')
$('#books').css('color', 'red')
@ -30,7 +29,7 @@ var add = function() {
)).then(function() {
$('#status').html('<p>La til bok '+$('#title')[0].value+'!</p>')
$('#status').css('color', 'green')
list(firebase.auth().currentUser)
list()
}).catch(function() {
$('#status').html('<p>Problem med å legge til bok '+$('#title')[0].value+'!</p>')
$('#status').css('color', 'red')
@ -40,7 +39,7 @@ var add = function() {
var remove = function(id) {
db.collection("bibliotek").doc(id)
.delete().then(function() {
list(firebase.auth().currentUser)
list()
}).catch(function(error) {
alert("Error removing document: ", error)
})

View File

@ -1,5 +1,5 @@
#kommentar {
.kommentar {
font-size: 1.1rem;
word-wrap: break-word;
}

View File

@ -6,15 +6,14 @@ var list = function() {
.withConverter(commentConverter)
.get()
.then(function(query) {
html = '<br/>'
$('#kommentarer').html('<br/>')
query.forEach(function(doc) {
book = doc.data()
html += book.toHtml(firebase.auth().currentUser)
book.toHtml($('#kommentarer'))
})
$('#kommentarer').html(html)
}).catch(function(error) {
$('#kommentarer').html('<h3>Kunne ikke hente ker!</h3><br/><p>'+error+'</p>')
$('#kommentarer').css('color', 'red')
$('#status').html('<h3>Kunne ikke hente kommentarer!</h3><br/><p>'+error.message+'</p>')
$('#status').css('color', 'red')
})
}
@ -27,6 +26,7 @@ var add = function() {
)).then(function() {
$('#status').html('<p>La til melding med navn '+$('#navn')[0].value+'!</p>')
$('#status').css('color', 'green')
$('#kommentarer').html('')
list()
}).catch(function() {
$('#status').html('<p>Problem med å legge til melding med navn '+$('#navn')[0].value+'!</p>')
@ -37,6 +37,7 @@ var add = function() {
var remove = function(id) {
db.collection("gjestebok").doc(id)
.delete().then(function() {
$('#kommentarer').html('')
list()
}).catch(function(error) {
alert("Error removing document: ", error)

View File

@ -32,6 +32,7 @@
<!-- <a type="submit" class="btn btn-primary" href="javascript: list()">Hent kommentarer</a> -->
<div id="kommentarer">
</div>
<p id="status"></p>
</div>
<script type="text/javascript" src="/it1/gjestebok/gjestebok.js"></script>
</body>

View File

@ -11,14 +11,26 @@ class Book {
toString() {
return this.title+' av '+this.author+', terningkast '+this.rating+', utgitt '+this.published.toString().slice(0,15)+', forlag; '+this.publisher
}
toHtml(user=false) {
let span = function(string, color='red') {
return '<span style="color: '+color+'">'+string+'</span>'
toHtml(elm) {
let span = function(selector, string, color='red') {
$($(selector)[$(selector).length-1]).append('<span style="color: '+color+'"></span>')
//$($(selector+' > span')[$(selector+' > span').length-1])
}
let user = firebase.auth().currentUser
elm.append('<p class="book"></p>', this.title)
span('.book')
//.text(this.toString())
if (user) {
$($('.kommentar')[$('.kommentar').length-1]).append(' &nbsp; <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>')
}
} /*
let span = function(string, color='red') {
return '<span style="color: '+color+'">'+string+'</span>'
}
return '<p>'+span(this.title)+' av '+span(this.author)+', terningkast '+span(this.rating)+', utgitt '
+span(this.published.toString().slice(0,15), 'green')+', forlag; '+span(this.publisher, 'yellow')
+(user?' &nbsp; <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>':'')+'</p>'
}
}*/
}
bookConverter = {

View File

@ -8,9 +8,13 @@ class Comment {
toString() {
return this.name+': '+this.message
}
toHtml(user) {
return '<p id="kommentar">'+this.name+': '+this.message
+(user?' &nbsp; <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>':'')+'</p>'
toHtml(elm) {
let user = firebase.auth().currentUser
elm.append('<p class="kommentar"></p>')
$($('.kommentar')[$('.kommentar').length-1]).text(this.toString())
if (user) {
$($('.kommentar')[$('.kommentar').length-1]).append(' &nbsp; <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>')
}
}
}