SafeCtl.exe υλοποιεί IObjectSafety στο στοιχείο ελέγχου ActiveX

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 164119 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Το δείγμα SafeCtl.exe παρουσιάζει πώς μπορείτε να τροποποιήσετε ένα στοιχείο ελέγχου με βάση το MFC ActiveX για να υποδείξετε ποιος δημοσίευσε το κώδικα και αν ένα στοιχείο ελέγχου έχει αλλοιωθεί. Το δείγμα μπορεί να σας βοηθήσει να προσδιορίσετε αν το στοιχείο ελέγχου είναι ασφαλές για εκτέλεση δέσμης ενεργειών και για προετοιμασία.

Περισσότερες πληροφορίες

Το ακόλουθο αρχείο είναι διαθέσιμο για λήψη από το Κέντρο λήψης της Microsoft (Download Center):
SafeCtl.exe
Για περισσότερες πληροφορίες σχετικά με τον τρόπο λήψης αρχείων υποστήριξης της Microsoft, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής βάσης της Microsoft:
119591Τρόπος απόκτησης αρχείων υποστήριξης της Microsoft από ηλεκτρονικές υπηρεσίες
Η Microsoft εξέτασε το αρχείο αυτό για ιούς. Η Microsoft χρησιμοποίησε το πιο πρόσφατο λογισμικό εντοπισμού ιών που ήταν διαθέσιμο κατά την ημερομηνία δημοσίευσης του αρχείου. Το αρχείο είναι αποθηκευμένο σε διακομιστές με ενισχυμένη ασφάλεια, οι οποίοι συμβάλλουν στην αποτροπή μη εξουσιοδοτημένων αλλαγών στο αρχείο.

Στον Internet Explorer 3.0 και νεότερες εκδόσεις, οι χρήστες να προσθέσετε κώδικα με τη μορφή των στοιχείων ελέγχου ActiveX για τις ιστοσελίδες τους. Η ετικέτα <object>χρησιμοποιείται για τον καθορισμό ενός στοιχείου ελέγχου. Αφού δημιουργηθεί μια παρουσία του στοιχείου ελέγχου, τα χαρακτηριστικά του μπορεί να ρυθμιστεί μέσω του στοιχείου ελέγχου διατήρηση διασυνδέσεων. Για παράδειγμα, για κάθε <param> ετικέτα που συναντά τον Internet Explorer στο περιβάλλον του μια <object>ετικέτα κατά την ανάλυση σε μια σελίδα HTML, ο Internet Explorer διαβιβάζει ένα σετ ιδιοτήτων μέσω του αντίστοιχου στοιχείου ελέγχου</object></object>IPersistPropertyBagΔιασύνδεση. Επιπλέον, μπορείτε να προσαρμόσετε τη συμπεριφορά ενός στοιχείου ελέγχου μέσω της χρήσης των δεσμών ενεργειών ενσωματωμένο στη σελίδα που εκτελεί τις μεθόδους και να τροποποιήσετε τις ιδιότητες που εκτίθενται μέσω διασύνδεσης αυτοματοποίησης του στοιχείου ελέγχου.

Υπογραφή τεχνολογία κώδικα Authenticode επιτρέπει στους τελικούς χρήστες για να προσδιορίσετε ποιος δημοσίευσε το κώδικα και να βεβαιωθείτε ότι κανείς δεν έχει τροποποιηθεί με τον κωδικό από την υπογραφή. Δεν εγγυάται ότι ο κώδικας είναι ασφαλής, όταν γίνει προετοιμασία τις ιδιότητές του με μη αξιόπιστα τιμές ή όταν το μοντέλο αυτοματισμού είναι οδηγείται από μη αξιόπιστη δεσμών ενεργειών. Για να αποφύγετε τέτοιες πιθανά ασφαλείας hazards, τις ρυθμίσεις ασφαλείας του Internet Explorer προεπιλογή, το που είναι προσβάσιμες μέσω τηςSecurityκαρτέλα του παραθύρου του Internet ExplorerOptionsη ιδιότητα φύλλο, απαιτούν ότι ένα στοιχείο ελέγχου καταχωρηθεί ως υλοποιεί το κατάλληλο στοιχείο κατηγορίες ή ότι το στοιχείο ελέγχου υλοποιεί τοIObjectSafetyΔιασύνδεση. Το δείγμα παρουσιάζει και τα δύο.

Πριν να ορίζει τις ιδιότητες ενός στοιχείου ελέγχου που είναι ενσωματωμένα σε μια σελίδα HTML, ο Internet Explorer θέτει ερωτήματα στο στοιχείο ελέγχου γιαIObjectSafety. Εάν υποστηρίζονται, ο Internet Explorer στη συνέχεια καλεί τηSetInterfaceSafetyOptionsη μέθοδος σε αυτήν τη διασύνδεση, διαβιβάζοντας την τιμή INTERFACESAFE_FOR_UNTRUSTED_DATA καθώς και το αναγνωριστικό διασύνδεσης (IID) μιας διασύνδεσης διατήρησης. Σε σελίδες HTML σήμερα, όπου ιδιότητες τείνουν να γίνει προετοιμασία μέσω του <param> ετικέτα, το Αναγνωριστικό είναι IID_IPersistPropertyBag. Το Αναγνωριστικό παρέχεται για περιπτώσεις όπου θέλετε να να προστατεύσετε την ασφάλεια σε ορισμένα περιβάλλοντα εργασίας, αλλά όχι σε άλλους χρήστες και σε αυτό το παράδειγμα που δεν είναι σημαντική. Ελέγχει την υλοποίηση του δείγματος για να βεβαιωθείτε ότι υποστηρίζεται η διασύνδεση. Εάν το στοιχείο ελέγχου μπορεί να γίνει καμία βλάβη στο σύστημα του υπολογιστή-πελάτη, ανεξάρτητα από τα δεδομένα με τα οποία ενδέχεται να προετοιμαστεί μέσω αυτής της διασύνδεσης διατήρησης και υποστηρίζεται αυτήν τη διασύνδεση διατήρησης, υλοποίηση του στοιχείου ελέγχου από τοIObjectSafety::SetInterfaceSafetyOptionsη μέθοδος πρέπει να επιστρέφει S_OK. Διαφορετικά, θα πρέπει να επιστραφούν E_FAIL.

Πριν να επιτρέψετε τις δέσμες ενεργειών που είναι ενσωματωμένες στη σελίδα για να εκτελείται, ο Internet Explorer παρόμοια κλήσεις μέσω του στοιχείου ελέγχουIObjectSafety:: SetInterfaceSafetyOptionsη μέθοδος, αλλά αντίθετα μεταβιβάζει την τιμή INTERFACESAFE_FOR_UNTRUSTED_CALLER και το Αναγνωριστικό της ορισμένες δέσμες ενεργειών διασύνδεση, η οποία συνήθως είναι IID_IDispatch. Το στοιχείο ελέγχου θα πρέπει να επιστρέφει S_OK ή E_FAIL κατάλληλα.

Εάν το στοιχείο ελέγχου δεν υποστηρίζειIObjectSafetyΟ Internet Explorer χρησιμοποιεί τη Διαχείριση κατηγορίες στοιχείων για να δείτε εάν το στοιχείο ελέγχου υλοποιεί την κατηγορία "ασφαλές για προετοιμασία" CATID_SafeForInitializing και την κατηγορία "ασφαλή για εκτέλεση δέσμης ενεργειών", CATID_SafeForScripting, αντίστοιχα.

Εάν το στοιχείο ελέγχου δεν υποστηρίζειIObjectSafetyέχει δεν καταχωρημένος στον εαυτό ως υλοποιεί το κατάλληλο στοιχείο κατηγορίες και εάν το επίπεδο ασφαλείας του Internet Explorer έχει ρυθμιστεί σε υψηλό επίπεδο, η προεπιλογή, ο Internet Explorer δεν θα προετοιμάσει ιδιότητες του στοιχείου ελέγχου, ούτε θα εκτελέσει τις δέσμες ενεργειών που είναι ενσωματωμένες στη σελίδα. Σε αυτό το σενάριο, οι τελικοί χρήστες, εμφανίζεται ένα παράθυρο διαλόγου που περιέχει το ακόλουθο κείμενο:
Πιθανή παραβίαση ασφάλειας αποφεύγονται
Αυτή η σελίδα περιέχει ενεργό περιεχόμενο που δεν είναι ασφαλής verifiably για να εμφανίσετε. Για να προστατευτεί ο υπολογιστής σας, αυτό το περιεχόμενο δεν θα εμφανιστεί.
Ακολουθεί μια λίστα των οδηγιών που λαμβάνονται από το άρθρο Paul Johns, "υπογραφή και σήμανσης στοιχείων ελέγχου ActiveX:"
  • Το στοιχείο ελέγχου δεν χειρίζονται το σύστημα αρχείων.
  • Το στοιχείο ελέγχου δεν χειρίζονται το μητρώο (εκτός από το να καταχωρήσετε και να καταργήσετε την καταχώρηση του).
  • Το στοιχείο ελέγχου δεν overindex πίνακες ή χειρίζονται διαφορετικά μνήμη λανθασμένα.
  • Το στοιχείο ελέγχου επικυρώνει (και διορθώνει) όλα τα δεδομένα εισόδου, συμπεριλαμβανομένης της προετοιμασίας, παραμέτρων μεθόδων και ιδιοτήτων σύνολο συναρτήσεων.
  • Το στοιχείο ελέγχου δεν καταχραστεί όλα τα δεδομένα που παρέχονται από το χρήστη ή που είναι σχετικά με αυτόν το χρήστη.
  • Το στοιχείο ελέγχου έχει ελεγχθεί σε διάφορα σενάρια.
Για επιπλέον πληροφορίες, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
Υπογραφή και σήμανσης στοιχείων ελέγχου ActiveX
http://msdn2.Microsoft.com/en-us/library/ms974305.aspx
Εάν ο συντάκτης ενός στοιχείου ελέγχου έχει επαληθεύσει ότι τα παραπάνω κριτήρια πληρούνται μαζί με οποιεσδήποτε άλλες που αυτοί να σκεφτείτε, αυτά πρέπει να υποστηρίζουν και τις δύοIObjectSafetyκαι η καταχώρηση ελέγχου τους ως υλοποιεί το κατάλληλο στοιχείο κατηγορίες. Για μια λίστα με τα πλεονεκτήματα και μειονεκτήματα του καθένα από αυτές τις μεθόδους, εξετάστε την αντίστοιχη ενότητα του άρθρου Paul Johns, "Υπογραφή και σήμανσης στοιχείων ελέγχου ActiveX."

Για τη μεταγλώττιση

Δημιουργία του δείγματος απαιτεί Microsoft Visual C++ 5.0 ή Microsoft Visual C++ 6.0. Μετά την εξαγωγή των αρχείων από την αρχειοθέτηση, φορτώστε το έργο Safectl.mdp στη Microsoft Developer Studio και δόμηση του έργου. Ως μέρος της διαδικασίας δημιουργίας, το στοιχείο ελέγχου θα πρέπει να καταχωρηθεί.

ΠΡΟΣΟΧΗΠριν να τροποποιήσετε το δείγμα, χρησιμοποιώντας αργότερα τα δύο συμβόλων προεπεξεργαστή που παρατίθενται σε αυτήν την ενότητα, θα πρέπει να καταργήσετε την καταχώρηση του στοιχείου ελέγχου αν έχει ήδη δημιουργηθεί ή καταχωρημένο στον υπολογιστή. Για να γίνει αυτό, εκτελέστε το αρχείο Regsvr32.exe με το/uο διακόπτης για το στοιχείο ελέγχου. Μπορείτε επίσης να προσθέσετε μια καταχώρηση προσαρμοσμένου εργαλείου στο Studio προγραμματιστές που θα το κάνετε αυτό για το τρέχον έργο. Στο διακομιστήΕργαλείαμενού, κάντε κλικ στο κουμπίΠροσαρμογή (Customize), και στη συνέχεια κάντε κλικ στοΕργαλείακαρτέλα δημιουργήσετε μια νέα εγγραφή με τις ακόλουθες πληροφορίες:
                Name: &Un-register ActiveX Control
             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE
           Arguments: /u /v "$(TargetPath)"
   Initial Directory: $(TargetDir)
				
Στο σημείο αυτό, μπορείτε να χρησιμοποιήσετε την καταχώρηση "Εργαλεία/κατάργηση-καταχώρηση στοιχείου ελέγχου ActiveX" για την κατάργηση της καταχώρησης του στοιχείου ελέγχου πριν από την προσθήκη ή την κατάργηση των ορισμών προεπεξεργαστή αφορούν το δείγμα.

Για να δημιουργήσετε το στοιχείο ελέγχου ώστε να καταχωρεί ίδια με την υλοποίηση του "ασφαλές για προετοιμασία" και την "ασφαλή για εκτέλεση δέσμης ενεργειών" κατηγορίες στοιχείων, ακολουθήστε τα εξής βήματα:
  1. Στο διακομιστήΤο έργομενού, κάντε κλικ στο κουμπίρυθμίσεις.
  2. Κάντε κλικ στην καρτέλαC++καρτέλα και, στη συνέχεια, ορίστε τον ακόλουθο ορισμό προεπεξεργαστή:
    L_USE_COMCAT
  3. Κάντε κλικOkΓια να κλείσετε τορυθμίσειςπαράθυρο διαλόγου και στη συνέχεια αναδημιουργία του στοιχείου ελέγχου.
Για να δημιουργήσετε το στοιχείο ελέγχου ώστε να υλοποιεί αντί γιαIObjectSafety, ακολουθήστε τα προηγούμενα βήματα, αλλά αντικαταστήστε L_USE_COMCAT με L_IMPL_OBJECTSAFETY.

Επίσης είναι έγκυρη για τον καθορισμό δύο συμβόλων προεπεξεργαστή. Παρατηρήστε ότι αυτά τα σύμβολα είναι συγκεκριμένες για αυτό το έργο. Από προεπιλογή, οι ρυθμίσεις δημιουργίας του έργου καθορίζουν δύο συμβόλων προεπεξεργαστή.

Για την εκτέλεση της

Αφού το δείγμα ελέγχου έχει δημιουργηθεί και έχει καταχωρηθεί με επιτυχία, ξεκινήστε τον Internet Explorer και στη συνέχεια, ανοίξτε τη σελίδα Safectl.htm, η οποία συνοδεύει το δείγμα.

Εάν το στοιχείο ελέγχου έχει ρυθμιστεί ώστε να καταχωρηθεί ως ασφαλές ή υλοποιείIObjectSafety, πρέπει να διαβάσετε τη λεζάντα στοιχεία ελέγχου "Ασφαλή για την προετοιμασία!" Όταν κάνετε κλικ στο στοιχείο ελέγχου, πρέπει να λάβετε το ακόλουθο μήνυμα:
Μου πρέπει να είναι ασφαλές για εκτέλεση δέσμης ενεργειών!
Εάν ο Internet Explorer έχει ρυθμιστεί σε υψηλότερη ρύθμιση της ασφάλειας, η σχετική δέσμη ενεργειών δεν εκτελείται και λαμβάνετε το ακόλουθο μήνυμα:
Δεν ασφαλές για προετοιμασία!


ΣΗΜΕΙΩΣΗΕάν είστε δόμησης και δοκιμή διαφορετικών ρυθμίσεων παραμέτρων αυτού του δείγματος, βεβαιωθείτε ότι μπορείτε να ανανεώσετε την ιστοσελίδα στο πρόγραμμα περιήγησης. Εάν δεν ανανεώσετε τη σελίδα, ίσως χρησιμοποιείτε την προσωρινά αποθηκευμένη έκδοση του στοιχείου ελέγχου αντί για την πιο πρόσφατη έκδοση.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τα API ασφαλείας, ανατρέξτε στην ενότητα Ασφάλεια κατά την αναφορά API στην ηλεκτρονική τεκμηρίωση των ActiveX SDK.

Για περισσότερες πληροφορίες σχετικά με την υπογραφή κώδικα, ανατρέξτε στην ενότητα "Υπογραφή με Microsoft Authenticode Technology" στην ηλεκτρονική τεκμηρίωση των ActiveX SDK.

Για περισσότερες πληροφορίες σχετικά με τις κατηγορίες των στοιχείων, ανατρέξτε στο θέμα "Κατηγορίες στοιχείων" στην ηλεκτρονική τεκμηρίωση των ActiveX SDK.

Για περισσότερες πληροφορίες σχετικά με τον τρόπο υλοποίησης του μοντέλου αντικειμένου στοιχείου (COM) διασύνδεσης MFC, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
141277Πώς μπορείτε να παρακάμψετε μια διασύνδεση σε μια εφαρμογή MFC χρησιμοποιώντας το Visual C++
Για λεπτομερείς πληροφορίες σχετικά με την ανάπτυξη ενός στοιχείου ελέγχου ActiveX και τον τρόπο ανάπτυξης στο Web, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
Το ABCs των στοιχείων ελέγχου MFC ActiveX
http://MSDN.Microsoft.com/en-us/library/ms968497.aspx

Ιδιότητες

Αναγν. άρθρου: 164119 - Τελευταία αναθεώρηση: Πέμπτη, 22 Σεπτεμβρίου 2011 - Αναθεώρηση: 5.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Λέξεις-κλειδιά: 
kbdownload kbfile kbinfo kbsample kbmt KB164119 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:164119

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com