Μια μικρή βοήθεια

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Μια μικρή βοήθεια

Δημοσίευση από ThyClub » 05 Μαρ 2006 20:59

Γειά σας. Έκατσα προχτές και έφτιαξα ενα WYSIWYG editor και μπορώ να πώ οτι κατάφερα πολλά περισσότερα απο όσα φανταζόμουν.

Υποστηρίζει σχεδόν όλες τις βασικές λειτουργίες ενός RTE και δουλεύει άψογα σε IE. Έχει μια κάπως παράξενη (όχι και τόσο ενπχλητική) συμπεριφορά σε FF αλλά δουλεύει.

Με Opera ακόμη προσπαθώ να βρώ μια λύση. Παρακάτω έχω τα αρχεία του προγράμματος. Θα ήθελα κάποιος να με βοηθήσει σε:

1. Θέλω να δημιουργήσω ενα object πχ: var doc = document.getElementById('editor').contentWindow.document; το οποίο να είναι global. Δηλαδή να μην χρειάζεται να το ορίζω σε κάθε function.

2. Κάποιος να δεί τον κώδικα και να μου πεί που και πώς μπορεί να βελτιωθεί. ΠΧ: να εξαλείψουμε την παράξενη συμπεριφορά στον FF και αν γίνεται να κάνουμε κάτι και για τον Opera.

Οτιδήποτε άλλο αισθανθεί οτι μπορεί να προσθέσει :P
Συνημμένα
ZeRTEus.zip
Εδώ τα αρχεία
(25.49 KiB) Μεταφορτώθηκε 411 φορές

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Μια μικρή βοήθεια

Δημοσίευση από cherouvim » 05 Μαρ 2006 22:21

Oraio

Eho ftiaksei kai ego ena: http://temp.cherouvim.com/rte2/rte.html

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Μια μικρή βοήθεια

Δημοσίευση από ThyClub » 06 Μαρ 2006 05:58

Άπαιχτος!!!

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Μια μικρή βοήθεια

Δημοσίευση από skeftomilos » 06 Μαρ 2006 23:14

Για τον Opera μην ψάχνεις, δεν έχει design mode. Κανεις editor δεν περιλαμβάνει υποστήριξη για Opera προς το παρόν.

Χρησιμοποιείς μια κενή σελίδα για την παρακάτω γραμμή:

Κώδικας: Επιλογή όλων

zEditor +="<iframe id='editor' width='100%' height='100%' src='frame.html'></iframe>";
Στη θέση του frame.html μπορεί να μπει about:blank.

Σχετικά με global variables είναι πολύ εύκολο νομίζω, αλλά η επιδίωξη θα έπρεπε να είναι η αντίθετη: λίγες global variables. Αυτή τη στιγμή το global namespace είναι «λερωμένο» με αρκετές global variables: zVersion, zAuthor, initZeRTEus, execZeCmd, goHTML, goEdit, zAbout και printEditor. Ιδανικά θα έπρεπε να υπήρχε μόνο μία, το namespace Zeus. Π.χ.:

Κώδικας: Επιλογή όλων

<script type="text/javascript">
  var editor = new Zeus.Editor&#40;'form14','post','index.php'&#41;;
  editor.init&#40;&#41;;
</script>
To string concatenation δεν ενδείκνυται στη JavaScript, ούτε σε άλλες γλώσσες απ' όσο γνωρίζω. Το παρακάτω είναι αργό:

Κώδικας: Επιλογή όλων

var zEditor="<div...";
zEditor +="<form...";
zEditor +="<span...";
zEditor +="<input...";
...και αυτό είναι μάλλον χειρότερο. Σε ορισμένες περιπτώσεις μπορεί να οδηγήσει σε κατανάλωση όλης της RAM (στον IE):

Κώδικας: Επιλογή όλων

var zEditor="<div..."
  + "<form..."
  + "<span..."
  + "<input...";
...ενώ αυτό είναι σίγουρα γρήγορο για οποιοδήποτε αριθμό από strings:

Κώδικας: Επιλογή όλων

var zEditor = &#91;
  "<div...",
  "<form...",
  "<span...",
  "<input..."
&#93;.join&#40;""&#41;;
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Μια μικρή βοήθεια

Δημοσίευση από cherouvim » 07 Μαρ 2006 00:27

H adynamia tou design mode na paragei xhtml compliant kodika (idika toy IE) me othise sto na ftiakso ena bbcode editor, gia to CMS mou, tou opoiou to input metatrepo se xhtml kata to rendering. Me afto to tropo petyhaino ta eksis:
1. Periorizo ton hristi stis leitourgies pou thelo ego na tou pareho.
2. Eimai sigouros oti to markup pou tha vgei apo ekei mesa exei tags kai attributes pou epitrepo. (Oxi den elegho -akoma- gia to validity tou markup, px unclosed tags etc).
3. Mou fevgei o ponokefalos pou syndeetai me tin prospatheia katharismatos tou kodika apo pithana XSS komatia kodika.

Episis omos "kerdizo" kai se xristes pou dyskolevontai na katalaboun ti kanei to:

Κώδικας: Επιλογή όλων

&#91;url=http&#58;//foobar.com&#93;&#91;img=foobar_thumb.gif&#93;A foobar site&#91;/img&#93;&#91;/url&#93;

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Μια μικρή βοήθεια

Δημοσίευση από skeftomilos » 07 Μαρ 2006 23:57

Πολύ εφευρετικοί αυτοί οι hackers. Απίστευτα XSS tricks! :o
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Μια μικρή βοήθεια

Δημοσίευση από cherouvim » 08 Μαρ 2006 08:16

Asta! Kai prosfata eida oti ena website mou (to opoio exei apo piso backend gia ti diahirisi tou) itane vulnerable se tetia pragmata kai pagosa. To skeptiko einai na prostatefteis me user input validation (metatrepeis se entities ta < > ; # ? ( ) ktl) kai prosehontas gia session impersonization kratontas sto session to IP kai to user agent tou logged hristi (kai eleghontas afto se kathe request). Vevaia ti ginete me tous hristes tis AOL pou (nomizo oti) kathe ligo allazei to IP tous?

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Μια μικρή βοήθεια

Δημοσίευση από skeftomilos » 09 Μαρ 2006 07:07

Μου φαίνεται ότι το Cross-site scripting δεν είναι ένα πρόβλημα που πλήτει άμεσα τους servers αλλά τους users. Αν έχει περάσει κώδικας του κακόβουλου Α στον ανυποψίαστο Β, Ο server δε θα μπορεί να ξέρει ότι τα requests που κάνει ο Β οφείλονται στην πραγματικότητα στον κώδικα του Α. Επομένως σε τι ακριβώς βοηθάει ο συνεχής έλεγχος της IP σε αυτά τα ζητήματα;
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Μια μικρή βοήθεια

Δημοσίευση από cherouvim » 09 Μαρ 2006 08:24

Enas apo tous skopos tou XSS einai telika na klepsoume to cookie kapiou admin tou site/application pou ti sigekrimeni stigmi einai logged in. Otan kataferoume na tou paroume to session ID tou, to fytevoume sto browser mas kai paristanoume ton admin.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης