[英]Is it enough to avoid xss?
当用户将<script>alert('Hello');</script>
放在我的网站上,即评论部分时,其翻译为:<script> alert('Hello'); </ script>是否足以避免对我的xss攻击现场?
If you convert every <
to <
如果将每个
<
转换为<
and every >
to >
以及每个
>
到>
, it will prevent the user to enter any html tag. ,这将阻止用户输入任何html标签。 So it is enough.
这样就足够了。
Have a look on these Examples too for better security of your website: 也请查看以下示例,以提高网站的安全性:
1. Best Possible Security for Reflected XSS : 1. 反射XSS的最佳安全性 :
<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Get input
$name = htmlspecialchars( $_GET[ 'name' ] );
// Feedback for end user
echo "<pre>Hello ${name}</pre>";
}
// Generate Anti-CSRF token
generateSessionToken();
?>
2. Best Possible Security for Stored XSS : 2. 最佳的存储XSS安全性 :
<?php
if( isset( $_POST[ 'btnSign' ] ) ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Get input
$message = trim( $_POST[ 'mtxMessage' ] );
$name = trim( $_POST[ 'txtName' ] );
// Sanitize message input
$message = stripslashes( $message );
$message = mysql_real_escape_string( $message );
$message = htmlspecialchars( $message );
// Sanitize name input
$name = stripslashes( $name );
$name = mysql_real_escape_string( $name );
$name = htmlspecialchars( $name );
// Update database
$data = $db->prepare( 'INSERT INTO guestbook ( comment, name ) VALUES ( :message, :name );' );
$data->bindParam( ':message', $message, PDO::PARAM_STR );
$data->bindParam( ':name', $name, PDO::PARAM_STR );
$data->execute();
}
// Generate Anti-CSRF token
generateSessionToken();
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.