下面的代码中href='example.php?id="<?= $row['id'] ?>"'
是否安全?
如果没有,你能告诉我为什么以及如何使其安全吗?
<a class='btn btn-sm' href='example.php?id="<?= $row['id'] ?>"' role='button' data-toggle='modal' data-target='.bs-example-modal-lg'>View</a>
编辑:
这就是为什么上面的问题在我脑海中引发的原因。我在鼠标悬停时只看到了浏览器底部的数据库ID!
答案 0 :(得分:1)
在你的代码中有任何重要的错误,但我认为短标记已激活,但更好的是你在这里使用完整标记:
CREATE PROCEDURE [dbo].[SetUserId]
@userId INT
AS
BEGIN
SET NOCOUNT ON;
EXEC sp_set_session_context 'UserId', @userId;
END
这是更好的选择,并且必须通过id加载示例的重要服务器端代码易受攻击。
答案 1 :(得分:0)
无需引号,您需要删除它们:
<a class='btn btn-sm' href='example.php?id=<?= $row['id'] ?>' role='button' data-toggle='modal' data-target='.bs-example-modal-lg'>View</a>
最好使用PHP sprintf
或类似的东西来提高可读性:
echo sprintf("<a class='btn btn-sm' href='example.php?id=%d' role='button' data-toggle='modal' data-target='.bs-example-modal-lg'>View</a>",
$row['id']
);
%d
- 说它是一个整数。